通過在C#中使用GeckoWebBrowser有無論如何知道一個頁面何時完成使用XMLHttpRequest更新其內容?我認爲DocumentCompleted事件會做到這一點,但因爲它不會重新加載的頁面不會啓動...使用XMLHttpRequest更改其內容的頁面的適當事件偵聽器是什麼?
回答
您可以使用mutation observer看document.body
的子樹,並假定頁面已完成修改(說)最後一次通知後20ms。
在JavaScript中,這將是這個樣子:
(function() {
var observer;
// The click handler that appends content after a random delay
document.querySelector('input').addEventListener("click", function() {
if (!observer) {
hookupObserver();
}
setTimeout(function() {
var p = document.createElement('p');
p.innerHTML = "New content added at " + Date.now();
document.querySelector('div').appendChild(p);
}, 500 + Math.round(Math.random() * 500));
}, false);
// Watching for subtree mods to `document.body`:
function hookupObserver() {
var timer = 0;
observer = new MutationObserver(function() {
clearTimeout(timer);
timer = setTimeout(done, 40);
});
observer.observe(document.body, {childList: true, subtree: true});
}
function done() {
timer = 0;
alert("Modification complete");
}
})();
<input type="button" value="Click to simulate async modification">
<div>This is the page</div>
這只是完美的...感謝您的快速回答! – 2015-02-08 19:21:36
@MarcoDufal - 注意:'MutationObserver'需要IE11或更高版本。 – jfriend00 2015-02-08 19:33:05
@ jfriend00:他在C#中使用GeckoWebBrowser。 (但在IE9和IE10中,有些項目使用--gh - 突變事件來模擬MutationObserver ...) – 2015-02-09 08:17:05
- 1. 在這種情況下,JTextPane的適當事件偵聽器是什麼?
- 2. XMLHTTPRequest事件偵聽器不工作?
- 3. 事件偵聽器,以等待所有XMLHttpRequest的內部的iframe
- 4. 將一個事件偵聽器更改爲另一個事件偵聽器?
- 5. iOS:Objective-C中的事件偵聽器的等效物是什麼?
- 6. 匿名事件偵聽器有什麼更好的選擇?
- 7. 使用事件偵聽器來測量時間頁面
- 8. 是否可以爲磁盤可用容量更改添加事件偵聽器?
- 9. XMLHttpRequest的open函數的異步事件偵聽器
- 10. 事件偵聽器
- 11. 爲什麼在函數調用中使用事件偵聽器?
- 12. Jspresso:在收集內容更改時未調用偵聽器
- 13. jQuery委託不同DOM層次結構的事件偵聽器 - 適用的事件偵聽器會觸發嗎?
- 14. 將事件偵聽器傳遞給事件偵聽器?
- 15. 爲什麼symfony2不會調用我的事件偵聽器?
- 16. jQuery - 事件偵聽器「更改」僅適用於焦點在對象上
- 17. 使「scrollLeft」/「scrollTop」更改不會觸發滾動事件偵聽器
- 18. 事件偵聽通知其他事件
- 19. 我應該在聽DependencyProperty更改時使用弱事件偵聽器嗎?
- 20. 如何在標記的事件偵聽器中使用事件偵聽器,其事件在偵聽時在兩個函數之間切換?
- 21. Codename在包含更多子容器的容器中偵聽的一個事件
- 22. javascript更改事件偵聽器中的html
- 23. AS3數據更改時的事件偵聽器?
- 24. 如何更改preUpdate事件偵聽器中字段的值?
- 25. PSI更改偵聽器
- 26. javascript事件偵聽器用於更改對象變量
- 27. 刪除事件偵聽器的當前發射事件
- 28. 事件偵聽器5
- 29. 事件偵聽器在evently
- 30. 蠟染事件偵聽器
* 「......當一個頁面已經完成更新使用XMLHttpRequest的內容......」 *'XMLHttpRequest'沒有按不要修改網頁。響應XHR請求的完成,JavaScript代碼可能會響應。 – 2015-02-08 19:00:18