Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在加载HTML元素后立即修改它?_Javascript_Jquery_Html_Firefox_Greasemonkey - Fatal编程技术网

Javascript 如何在加载HTML元素后立即修改它?

Javascript 如何在加载HTML元素后立即修改它?,javascript,jquery,html,firefox,greasemonkey,Javascript,Jquery,Html,Firefox,Greasemonkey,如果页面未能完全加载或加载速度非常慢,则$(document).ready()函数不是很好 如何在元素创建后立即修改它?只要不是几秒钟,延迟一下就可以了 我也在用Greasemonkey,如果这很重要的话。但我也对一个在Greasemonkey之外有效的解决方案感兴趣 我也不想破坏网页上的性能 编辑:我不拥有我正在修改的网站。因此,我不能手动将任何代码放在那里 我尝试了window.onload=function(){}而不是$(document).ready(function(){}),但我注

如果页面未能完全加载或加载速度非常慢,则
$(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


下面是一个。

块放在要修改的元素后面。您是否尝试使用setinterval检查元素是否存在,然后将用户定义的属性设置为元素,然后为要由setinterval检查的特定元素创建一个用户定义的属性,以便能够终止setinterval在加载要修改的元素之后。@Barmar,那么我该怎么做呢?这个网站不是我的。@MikeAnte,你似乎是唯一一个真正理解我问题的人。除了按时间间隔检查外,还有其他方法吗?@Rookie也许你可以制作一张你正在修改的内容的小地图。我将能够为您提供修补解决方案。该网站不是我的。我不能简单地用手把东西放在那里。我尝试了
window.onload=function(){}
而不是
$(document).ready(function(){})
,但我注意到jquery版本的速度是原来的两倍。@Rookie我重新编写了我的答案,以正确地解决这个问题。对不起,我第一次误解了。是的,我想是的。如果你认为我的问题值得,也许你可以投我一票。我会接受这个/升级投票,因为这似乎是唯一的解决方案。@菜鸟,我之前已经升级了你的答案。如果更新问题,它将再次显示为活动状态,并可能获得更多视图。祝你好运:)