使用click()方法是在创建一个无休止的循环
Using a click() method is creating an endless loop
我想做的是让我在整个网站上的搜索输入在我已经构建的结果页面上显示搜索结果。这段代码是有效的,但它通过不断点击搜索来创建一个无休止的循环。有什么办法可以让它只点击一次吗?或者单击一下就结束功能?
提前谢谢。
function getParameter(paramName) {
var searchString = window.location.search.substring(1),
i, val, params = searchString.split("&");
for (i = 0; i < params.length; i++) {
val = params[i].split("=");
if (val[0] == paramName) {
return val[1];
}
}
return null;
}
var firstRun = true;
var search = getParameter("TextBox1");
if (search != "") {
var clickSubmit = setTimeout(function() {
if (firstRun) {
document.getElementsByName("TextBox1")[1].value=search;
document.getElementsByName("btnSearch")[1].click();
clearTimeout("firstRun");
}
}, 500);
};
document.writeln('<table style="background-color: #002e58; float: right; margin-right: 140px;"><tr><td><form name="Form1" method="get" action="../zsearch.aspx" id="Form1"><tr><td style="width: 12%; font-size: small;"></td><td><input name="TextBox1" type="text" id="TextBox1" style="width: 233px; padding=" /><input type="submit" name="btnSearch" value="Search" id="btnSearch" style="font-family: Arial; font-size: 12;"/></td><td> </td></tr><tr></tr></form></table>');
我相信您希望firstRun
是您的超时ID,但在您上面发布的示例中,它实际上是clickSubmit
。
试试这个?
var timeoutId = setTimeout(function() {
if (timeoutId) {
document.getElementsByName("TextBox1")[1].value=search;
document.getElementsByName("btnSearch")[1].click();
}
},500);
由于输入数据是永久性的,所以会出现无休止的循环。每个加载firstRun
的html页面设置为true
,然后通过触发点击事件编写提交表单的脚本,然后使用相同的查询参数再次加载html页面,以此类推
如果出现以下情况,您可能会打破此循环:
- 加载页面后,您设置了一个特殊的字段,意思是"不首先运行",然后检查该字段的存在
- 在提交之前,您将搜索字段保存在cookie上,并在重新加载页面上比较cookie值和字段值(如果相等,则"不首先运行")
相关文章:
- 为什么setTimeout适用于无休止的递归调用
- 使用SetInterval进行无休止循环
- 没有for的Javascript无休止循环
- Javascript无休止的循环毫无原因地发生
- 为什么这会造成一个无休止的循环并使我的浏览器崩溃
- 使用click()方法是在创建一个无休止的循环
- Jquery无休止滚动加载来自其他站点的内容
- 以无点风格在Ramda中编写一个无参数函数
- HTML5历史API弹出状态重新加载野生动物园刷新页面无休止
- Tumblr 无限(无休止)滚动/自动页面脚本问题
- 为什么我的程序发出无休止的 GET 请求
- 无休止的控制台日志,javascript不会离开函数requestAnimationFrame
- 浏览器中的无休止的页面更新(javascript)
- 使无休止的jQuery简短而简单
- 创建按钮时陷入无休止的循环
- svg围绕其中心无休止地旋转形状
- 使用胡子模板实现无休止滚动时出现DOM异常8错误;jquery砌石
- url检查正则表达式在浏览器中无休止地运行
- 如何防止表单被发送时,按回车在一个无表单输入字段?(款)
- 无休止的滚动和使用GET方法来过滤内容