Если вы посмотрите на эту скрипку: http://jsfiddle.net/umjcd/4/
HTML:
<h1>Instructions</h1>
<ol>
<li>Click on Resize Button</li>
<li>Observe no resize event is raised</li>
<li>Click on Check Height button</li>
<li>Observe height has changed</li>
</ol>
<button id="button">Resize</button>
<button id="button2">Check Height</button>
<br/>
<div id="map" style="position:fixed;width:600px;height:0px;border:1px solid black;">
<div id="root" style="position:absolute;left:0px;right:0px;top:0px;bottom:0px;border:1px solid red"/>
</div>
Javascript:
var button = document.getElementById('button');
button.addEventListener('click', process);
var root = document.getElementById('root');
root.addEventListener('resize', resize);
var console = document.getElementById('console');
var map = document.getElementById('map');
var button2 = document.getElementById('button2');
button2.addEventListener('click', function () {
log(root.offsetHeight);
});
log('ready to log');
function process() {
map.style.height = '400px';
}
function resize() {
var w = root.offsetWidth;
var h = root.offsetHeight;
log('resize event raised, dimensions are ' + w + " x " + h);
}
function log(text) {
console.appendChild(document.createTextNode(text));
console.appendChild(document.createElement('br'));
}
Chrome не resize
событие resize
при изменении размера div
. Это ошибка, или это нормально? В IE и FF e.onresize
возвращает undefined
но в Chrome e.onresize
возвращает null
где e
- это div
. Intellisense в отладчике Chrome обнаруживает свойство onresize
на e
. Должно ли оно возвращаться undefined
в хроме? IE и FF поддерживают resize
но только на объекте window
. Я не могу найти надлежащую документацию, объясняющую, когда resize
должен быть поднят и будет ли non- window
должны объекты, чтобы поддержать его или нет в Chrome.
Из спецификации W3C:
Пользовательский агент должен отправить это событие при изменении размера документа.
http://www.w3.org/TR/DOM-Level-3-Events/#event-type-resize
Событие resize
запускается, когда изменяется размер окна, а не какие-либо элементы, которые вы выбрали.
<a>
. У него есть событияonplay
иonprogress
, но оба они являются медиа-событиями, которые никогда не сработают на<a>
но они все еще там.