我创建了一个运行以下JavaScript函数的HTML文件:
window.location="url";
document.getElementById('button-id').click();
脚本加载网址,如网址中所述。但是,它不响应第二个声明,即点击。我通过Chrome JavaScript控制台运行了相同的代码,效果非常好。
答案 0 :(得分:0)
如果你加载一个新的URL,如何找到第一页上曾经存在的元素“button-id”? 如果第二页上存在此元素,请使用document.onload或$(document).ready()和jquery自动执行与“单击”操作相关联的操作。
答案 1 :(得分:0)
在触发前忽略window.location
。例如,在此页面上document.getElementById('nav-questions').click()
有效。
在您的情况下,如果有必要将这些语句一起写入语句,请使用像if
之类的控制流或类似的东西来分隔这两行。如果click()
应该被提及,那么之前一定不能有window.location
。
示例:
if (redirect) {
window.location = url;
} else {
document.getElementById('nav-questions').click();
}
答案 2 :(得分:0)
在文档加载完成之前,这不起作用。
它可以从控制台运行,因为文档已经被加载了,但是当浏览器执行它时,它还为时过早。
尝试将其作为概念证明:
<body onload='document.getElementById('clickme').click();'>
<button type='button' id='clickme' onclick='window.location="wherever";'>
</body>