![](/img/trans.png)
[英]Angular directive to execute a function after HTML element has been loaded
[英]How to modify HTML element instantly after it has been loaded?
如果頁面無法完全加載或加載非常緩慢,則$(document).ready()
函數不是很好。
創建元素后,如何修改它? 只要不超過幾秒鍾,就可以進行一些延遲。
如果重要的話,我也正在使用Greasemonkey。 但是我也會對在Greasemonkey之外也可以使用的解決方案感興趣。
我也不想破壞網頁的性能。
編輯:我不擁有要修改的網站。 因此,我無法在此處手動放置任何代碼。
我嘗試使用window.onload = function(){}
而不是$(document).ready(function(){})
但是我注意到jquery版本的速度快了一倍。
看起來人們在投票之前沒有理解問題。
我誤解了您的問題,因此請完全重寫我的回答。
如果$(document).ready()
對您來說太慢,那么onload
絕對對您來說太慢。 沒有一小段代碼,我無法為您提供一些具體的信息,但這應該對您有用:
var checkIfExists = setInterval(function() {
var exists = document.getElementById("foo");
if (exists) {
clearInterval(checkIfExists);
doStuff(exists);
}
}, 25);
function doStuff(element) {
element.innerHTML = "bar";
}
確保不要將其放在任何onload
或ondomready
/ $(document).ready()
事件處理程序中。
加載該腳本后,它將每隔25毫秒檢查一次id
為foo
的元素是否存在。 一旦成功找到foo
,它將停止搜索並運行函數doStuff
。 現在,我不知道您要修改的內容是否實際具有id
,因此您將必須確切地找到如何搜索它。
我確定您知道這一點,但是我想提一下,間隔運行的次數很大程度上取決於html文檔中腳本的加載位置。 例如,如果它在文檔的底部,則只能運行一次。 如果在頭文件中,它將一直運行直到加載foo
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.