簡體   English   中英

HTML元素加載后如何立即修改?

[英]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";
}

確保不要將其放在任何onloadondomready / $(document).ready()事件處理程序中。

加載該腳本后,它將每隔25毫秒檢查一次idfoo的元素是否存在。 一旦成功找到foo ,它將停止搜索並運行函數doStuff 現在,我不知道您要修改的內容是否實際具有id ,因此您將必須確切地找到如何搜索它。

我確定您知道這一點,但是我想提一下,間隔運行的次數很大程度上取決於html文檔中腳本的加載位置。 例如,如果它在文檔的底部,則只能運行一次。 如果在頭文件中,它將一直運行直到加載foo

這是JSFiddle工作示例

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM