[英]How to execute extension code after native page javascript finishes executing?
如今,許多網頁都有自定義Javascript來執行頁面加載時的操作。 他們要么修改頁面內容,要么加載外部小部件。
我的擴展程序嘗試讀取DOM並在頁面中插入一些數據。 但是在某些情況下頁面具有自己的Javascript,我的擴展名將在頁面Javascript之前執行。
因此,頁面Javascript可能會覆蓋我的插入內容或插入我的擴展名無法讀取的數據。 在頁面Javascript函數加載/執行之后,如何等待執行擴展?
也許這會有所幫助,但是它會產生一些不良的副作用:
$(function () {
setTimeout(function () {
alert("At last!");
}, 1000); // 1000 millis after page loaded and most probably all onload handlers have been run
});
主要的副作用是它將在1000毫秒后執行,因此在這段時間內,用戶將看到未處理的頁面,然后腳本將對其進行處理。 在某些情況下,這可能很難看,並且會損害用戶的體驗。
編輯:
您也可以嘗試一下。 在主體的一端(內部,但最后)添加以下腳本標記:
<script>
$(function () { alert("LAST!"); });
</script>
通過腳本執行的規則以及jQuery遵循通過$(function () { ... });
添加onload處理程序的順序這一事實$(function () { ... });
成語,您可以確定代碼最后執行。 問題在於,任何異步執行(例如AJAX回調處理程序)都將無序執行(即,相對於形成責任鏈的window.onload
處理程序而言是異步的)。 為了解決這個問題,您需要一個模式,但這可能是過沖的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.