2015-02-11 21 views
0

今天我就注意到了這一點,我們的網站搜索字段在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 --> 
+1

哇。這不是很好的代碼......我不能確定,但​​Chrome有一個使無效的HTML無效的習慣。沒有表單標籤,這可能是您的問題。 – 2015-02-11 18:26:52

+0

信譽爲最隱蔽和奇怪的方式來做搜索功能! 「我們很久以前離開的一位開發人員做了。」我希望他改變職業! – Pogrindis 2015-02-11 18:42:15

回答

0

我的建議是在chrome中打開開發工具並查看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。

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

但是不要使用這個..重新寫它!