网站搜索字段无效 - Chrome

时间:2015-02-11 18:22:35

标签: html google-chrome

所以今天引起我的注意,我们的网站搜索字段在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 -->

2 个答案:

答案 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;    
              } 

但是不要使用它..重写它!