Да вроде нет, сначала рендерим, потом засекаем второй раз.
var endTime = Date.now(); printOutput("100 iterations of setZeroTimeout took " + (endTime - startTime) + " milliseconds."); i = 0; startTime = Date.now(); setTimeout(test2, 0); |
Там где есть postMessage (а это, я так понимаю, FF, Chrome, Safari) можно сделать ещё проще — навесить на window свой кастомный эвент и будет работать как надо
|
Цитата:
|
Объясните мне тупому, почему все же отказались от решения с dispatchEvent ?
У меня следующий код вроде везде работает (кроме IE конечно): var elem = document.createElement('div'); elem.onclick = function(e) { alert('Ok!'); }; var e = document.createEvent('HTMLEvents'); e.initEvent('click', false/* bubbles */, false/* cancelable */); elem.dispatchEvent(e); |
потому что не работает в ие
|
Цитата:
var xmlDoc = new ActiveXObject('Microsoft.XMLDOM'), done = false; xmlDoc.onreadystatechange = function() { if (!done) { done = true; alert('Ok!'); } }; xmlDoc.loadXML(''); но он медленный гад :( . done нужен потому-что событие срабатывает много раз и всякие this.onreadystatechange = null и xmlDoc.abort() его не отменяют. tenshi, а зачем нужна фабрика, не проще сразу вызывать переданную функцию? Можно даже в Function.prototype добавить метод. |
Цитата:
Цитата:
var fragment = document.createDocumentFragment(); var node = document.createElement('div'); node.attachEvent('onpropertychange', function(){ alert('Property change'); }); fragment.appendChild(node); node.fireEvent('onpropertychange', document.createEventObject()); |
Цитата:
Цитата:
UPD: афигеть, даже без attachEvent можно: var elem = $d.createElement('div'); $d.createDocumentFragment().appendChild(elem); elem.onclick = handler; elem.fireEvent('onclick', $d.createEventObject()); моя счастлив :) . |
Цитата:
Даже не пытайтесь переубедить. Цитата:
var fragment = document.createDocumentFragment(); var node = document.createElement('div'); node.attachEvent('onpropertychange', function(){ alert('Property change'); }); fragment.appendChild(node); node.innerHTML = ''; А вот если поместить его в документ, то всё ок. Осталось только слить 2 скрипта вместе и готово. |
Цитата:
Цитата:
|
Часовой пояс GMT +3, время: 20:13. |