2015-08-08 29 views
1

我有一個常見問題頁面,我想包含搜索功能,以便人們不必閱讀整個頁面以找到他們正在尋找的內容。使用JavaScript在頁面上搜索文字

jQuery("#search_submit").on("click", function() { 
    //var search_str = jQuery("#search_text").val();console.log(search_str); 
    findString(''); 
    return false; 
}); 

var TRange=null; 

function findString (str) { 
    str = document.getElementById('search_text').value;//jQuery("#search_text").val(); 
    if (parseInt(navigator.appVersion)<4) return; 
    var strFound; 
    if (window.find) { 

     // CODE FOR BROWSERS THAT SUPPORT window.find 

     var original_content = window; 
     strFound=original_content.find(str); 
     if (!strFound) { 
      strFound=original_content.find(str,0,1); 
      while (original_content.find(str,0,1)) continue; 
     } 
    } 
    else if (navigator.appName.indexOf("Microsoft")!=-1) { 

     // EXPLORER-SPECIFIC CODE 

     if (TRange!=null) { 
      TRange.collapse(false); 
      strFound=TRange.findText(str); 
      if (strFound) TRange.select(); 
     } 
     if (TRange==null || strFound==0) { 
      TRange=self.document.body.createTextRange(); 
      strFound=TRange.findText(str); 
      if (strFound) TRange.select(); 
     } 
    } 
    else if (navigator.appName=="Opera") { 
     alert ("Opera browsers not supported, sorry...") 
     return; 
    } 
    if (!strFound) alert ("String '"+str+"' not found!") 
    return; 
} 

我使用這個script但我不知道我在做什麼錯。它只搜索搜索文本輸入字段之前的部分頁面。

這裏是的jsfiddle http://jsfiddle.net/sandyrig/h86knpsq/1/

一切設置嘗試搜索詞「東西」或「笑」,你就會明白我的意思。

編輯

而且,居然在頁面中的所有問題都將處於摺疊狀態時,頁面加載,從而使發現,即使在摺疊答覆文件我會定製腳本,當達到同時uncollapse它搜索整個頁面。

+8

您可以讓用戶意識到所有*主要*瀏覽器都包含此功能,似乎有點不切實際,不是嗎? – Script47

+0

你正在使用的腳本似乎非常非常老。您鏈接到參考Netscape&IE4的那一頁:) – maxedison

+0

@ Script47它是客戶和設計的一部分,我們的目標受衆不是很懂電腦的人。 – Atif

回答

1

閱讀您鏈接頁面上的說明。他們通過將輸入框放在iframe中,從頁面的HTML中排除輸入框。代碼中發生的情況是,一旦.find()函數到達input字段,它將切換焦點並重新開始搜索。

嘗試對要搜索的文本進行硬編碼,使其不在輸入字段中,您會看到它可以正常工作。

工作例如:http://jsfiddle.net/daqb13n0/

還等什麼@CurtisAutery說,一個過濾功能將使很多更有意義。如果這是客戶的要求,那麼作爲專業人員的工作就是向客戶解釋他們的錯誤。或者,他們不知道過濾是什麼,也沒有人問他們。

此外,現在它在網頁上隨時隨地搜索文本,您只需將結果限制爲可用問題和答案中的文本,對不對?

TL; DR:如果你想讓它像你的鏈接頁面上工作

  • 把輸入 iframe中。
  • 如果你想提供一個好的產品:說服客戶他們想要什麼 是一個過濾功能。
相關問題