Chrome не поднимает событие изменения размера

0

Если вы посмотрите на эту скрипку: 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.

Теги:
google-chrome

1 ответ

0

Из спецификации W3C:

Пользовательский агент должен отправить это событие при изменении размера документа.

http://www.w3.org/TR/DOM-Level-3-Events/#event-type-resize

Событие resize запускается, когда изменяется размер окна, а не какие-либо элементы, которые вы выбрали.

  • 0
    тогда какой смысл в chrome предлагать событие изменения размера, а не вызывать его при изменении размера элемента? как я сказал в своем вопросе, в IE и FF нет свойства onresize для div, но chrome имеет свойство onresize для div.
  • 0
    Все события доступны для каждого элемента (в Chrome). Но это не значит, что браузер его запустит. Взять <a> . У него есть события onplay и onprogress , но оба они являются медиа-событиями, которые никогда не сработают на <a> но они все еще там.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню