Я попытался использовать jQuery, чтобы получить высоту/ширину окна в методе onload()
HTML-страницы, однако он просто выдает исключение. Я, очевидно, делаю что-то не так, потому что я начинаю с HTML5, Javascript и jQuery.
Код HTML:
<!DOCTYPE html>
<html>
<head>
<title>Testing Javascript Raphael</title>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width" />
<script type="text/javascript" src="js/libs/raphael/raphael-min.js"></script>
<script type="text/javascript" src="js/jquery-2.0.3.min.js"></script>
<script type="text/javascript" src="js/our_script.js" ></script>
</head>
<body>
<div id="canvas_container"></div>
</body>
</html>
Javascript our_script.js
:
//var paper = new Raphael(10, 50, 320, 200);
//var circle = paper.circle(50, 40, 10);
//circle.attr("fill", "#f00");
//circle.attr("stroke","#fff");
window.onload = function() {
//var paper = new Raphael(document.getElementById('canvas_container'), $( window ).width(), $( height).height());
var height = $( window ).height(); // ** This call does not work - exception is thrown and height variable remains undefined.
//var paper = new Raphael(document.getElementById('canvas_container'), 500,500);
//var circle = paper.circle(100, 100, 80);
//for(var i = 0; i < 5; i+=1) {
//var multiplier = i*5;
//paper.circle(250 + (2*multiplier), 100 + multiplier, 50 - multiplier)
//}
//var rectangle = paper.rect(200, 200, 250, 100);
//var ellipse = paper.ellipse(200, 400, 100, 50);
};
window.onresize = function() {
var r = $( window ).height();
var w = $( window ).width();
};
$( window ).load( function() {
var height = $( window ).height();
var width = $( window ).width();
});
Неужели я не могу запросить объект окна по высоте/ширине в вызове onload?
Ах, вы прокомментировали соответствующую часть. Вы пытаетесь использовать переменную height
в функции window.load
, но эта переменная не существует в этой области, и ваше второе событие window.load
еще не было оценено.
Здесь нет смысла удваивать ваш код. Переместите весь свой код window.load
здесь в одну функцию. jQuery не ограничивается использованием в своих собственных прослушивателях событий, как вы, кажется, сделали здесь.
var height = $( window ).height()
когда я пытаюсь var height = $( window ).height()
. Это вызов функции height (), вызывающий исключение, а не попытку использования переменной высоты
http://jsfiddle.net/CUa2a/
Если вы имеете в виду закомментированный код$( height).height()
вам нужно заменить высоту окном$( window).height()