所以今天引起我的注意,我们的网站搜索字段在chrome中不起作用...我无法点击并在文本字段中输入文本,也不能点击搜索图标来启动搜索......
对不起,我不知道导致这种情况的具体细节,也没有说明这一点。我们的一位开发人员很久以前离开了。我现在负责试图解决这个问题。
FireFox和IE 11似乎工作正常。
非常感谢任何见解。
<div class="searchbox" id="searchbox">
<script type="text/javascript">
function RunSearch() {
window.location.href = "http://search.domain.com:8765/query.html?ql=&col=web1&qt=" + document.getElementById("search").value;
}
</script>
<div class="formSrchr">
<input type="text" size="20" name="qt" id="search" value="Search" onfocus="if(this.value == 'Search') {this.value=''}" onblur="if(this.value == ''){this.value ='Search'}" />
<input type="hidden" name="qlOld" id="qlOld" value="" />
<input type="hidden" name="colOld" id="colOld" value="web1" />
<input type="image" name="imageField" alt="search" src="/_images/search-mag.gif" onclick="RunSearch();" />
</div>
</div> <!-- /searchbox -->
答案 0 :(得分:0)
我的建议是在chrome中打开Developer工具并查看Javascript调试窗口。这应该告诉你在更一般的情况下发生了什么。在任何一种情况下,我建议重写这样的代码片段:
<div class="searchbox" id="searchbox">
<div class="formSrchr">
<form action="http://search.domain.com:8765/query.html" method="get">
<input type="text" size="20" name="qt" value="Search" onfocus="if(this.value == 'Search') {this.value=''}" onblur="if(this.value == ''){this.value ='Search'}" onmouseup="return false" />
<input type="hidden" name="ql" id="ql" value="" />
<input type="hidden" name="col" id="col" value="web1" />
<input type="image" alt="search" src="/_images/search-mag.gif" />
</form>
</div>
</div>
标准表单元素的行为方式与没有JavaScript的情况相同。所有命名的输入都将作为URL参数添加,就像之前一样。这就是method="get"
的作用。对于大多数表单,默认method="post
最好;但是,对于搜索,你并没有真正发布任何内容。有一些奇怪的代理服务器禁用所有HTTP POST调用,以防止该代理后面的人意外地共享他们不应该的信息。 method="get"
允许这些人至少搜索您的网站。
注意:根据一些搜索,Chrome需要您disable the onmouseup
event进行焦点和模糊才能按预期工作。我上面的HTML表单已经为您进行了更改。
在HTML 5中,您可以使用placeholder
标记进一步简化它。它看起来像这样:
<input type="text" size="20" name="qt" placeholder="Search" value=""/>
删除搜索表单中的所有Javascript。
答案 1 :(得分:0)
这是错误的代码,我建议整个重写..至于快速解决..
您可以尝试以下方法:
var searchTerm = document.getElementById("search").value;
location.assign("http://search.domain.com:8765/query.html?ql=&col=web1&qt=" + searchTerm );
或者
function RunSearch() {
window.location.href = "http://search.domain.com:8765/query.html?ql=&col=web1&qt=" + document.getElementById("search").value;
return false;
}
但是不要使用它..重写它!