2013-03-28 42 views
0

我想写一个用户脚本,它会隐藏页面中的某些元素。问题是元素在页面加载几秒后才出现,所以我试图用几秒钟的时间来完成。用Javascript在一段时间后执行一个函数

这是我的代码:

function hide_stuff() 
{ 
    var e = document.getElementsByClassName("tab"); 
    if(e) 
     alert("got elements"); 
    else 
     alert("didn't get elements"); 
    for(var i = 0; i < e.length; i++){ 
     if (!e[i].id) 
      e[i].style.display = "hidden"; 
    } 
} 

setTimeout(hide_stuff(), 5000); 

问题是,它不耽误的。 “获取元素”警报(我添加为调试帮助)在页面加载时立即触发。我看不出我做错了什么,虽然我相信这可能是明显的。

任何帮助?

+0

'问题是元素在页面加载后几秒才出现',您是否使用[window.onload](https://developer.mozilla.org/en-US/docs/DOM /window.onload)事件并从那里运行你的代码?很少有任何延迟让事情加载正确的事情。 –

+0

这是一个用户脚本,所以它不在我自己的网站上运行;如果已经有一个函数分配给了window.onload事件呢?如果我分配了我自己的东西,会不会导致问题? 无论如何,这似乎并没有在这种情况下工作。在页面加载后,这些元素看起来会动态加载,所以让它在window.onload事件中运行不起作用。 – SleepingInsomniac

回答

4

变化

setTimeout(hide_stuff(), 5000); 

setTimeout(hide_stuff, 5000); 

不是传递的功能,你立即调用它(并传递到undefinedsetTimeout)。

+0

谢谢,现在就开始工作吧 – SleepingInsomniac

相关问题