页面完全加载后运行自定义javascript?

时间:2018-05-09 22:08:45

标签: javascript

我们有一个网站,并希望将搜索参数推送到网站上的搜索栏。



  var url_string = window.location.href;
  var str = url_string.split("=");
  var pn = str[1];
  document.getElementById('searchTermAll').value = pn;




问题是大部分页面是由他们的javascript生成的,所以#searchTermAll在页面加载时不存在。有没有办法将它附加到事件处理程序,以便它们在js运行后运行?

编辑:即使发生了window.onload和document.onload,它还没有加载页面,大部分页面都是在窗口和文档加载后用它们的js加载的。

编辑2: This is the text box I'm trying to force a value into

But this is all the document shows.

1 个答案:

答案 0 :(得分:1)

您可以使用setInterval来调查是否存在searchTermAll

var url_string = window.location.href;
var str = url_string.split("=");
var pn = str[1];
var searchBar;

var interval = setInterval(function() {
    searchBar = document.getElementById('searchTermAll');
    if (searchBar) {
        clearInterval(interval);
        searchBar.value = pn;
    }
}, 100);

这将每100毫秒(每秒10次)执行,直到找到页面中的元素;当然,你可以根据自己的意愿做出长或短的间隔。