我们有一个网站,并希望将搜索参数推送到网站上的搜索栏。
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加载的。
答案 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次)执行,直到找到页面中的元素;当然,你可以根据自己的意愿做出长或短的间隔。