2016-05-15 97 views
0

我試圖將用戶重定向到專門的搜索頁面,當他們鍵入搜索框並單擊從我的網站上的任何頁面發送。是否有可能與JS實現:基於搜索輸入 與JS的搜索功能

  • 重定向用戶到專門的搜索頁面

    1. 使用Ajax請求提取數據
    2. 基於來自Ajax請求
    數據建立新的搜索頁面

    我遇到的問題是JS需要在同一個函數的兩個不同的頁面上執行,我不知道如何正確地構造它。

  • +0

    嗨,歡迎來到SO!請閱讀[this](http://stackoverflow.com/help/how-to-ask)文章,瞭解如何提出更好的問題,這將幫助人們給你更好的答案。特別是,添加已經嘗試過的代碼將有助於人們理解您的問題,並更好地理解語境。 –

    回答

    0

    這真的很容易。假設這是你生成的HTML

    <form...> 
    ... 
    <div class="search"> 
    <input type="text" id="txtSearch" name="search" /> 
    <input type="submit" id="btnSearch" value="Search" /> 
    </div> 
    ... 
    </form> 
    ... 
    <script> 
    window.onload = function(){ 
        function searchRedir(){ 
         var searchKey = document.getElementById('txtSearch').value; 
         window.location = '/<searchPageUrl>?search=' + escape(searchKey); 
         return false; 
        } 
        document.getElementById('txtSearch').onchange = 
        document.getElementById('btnSearch').onclick = searchRedir; 
    
    } 
    

    提交按鈕btnSearch在情況下用戶瀏覽器中添加不支持javascript(或支持被關閉)。在這種情況下,您必須將請求重定向到服務器端的搜索頁面。代碼可能會有所不同,這取決於服務器端技術。

    0

    是的。有可能的。

    下面是谷歌爲每個的:

    1.-「如何做(使用Javascript /您所使用的框架)一個Ajax請求」,如果你不使用任何框架,我會建議使用superagent來簡化您的請求。但是,這是沒有必要的,你可以用普通的JavaScript做阿賈克斯GET要求是這樣的(學分You might not need jQuery):

    var request = new XMLHttpRequest(); 
    request.open('GET', '/my/url', true); 
    
    request.onload = function() { 
        if (this.status >= 200 && this.status < 400) { 
        // Success! 
        var resp = this.response; 
        } else { 
        // We reached our target server, but it returned an error 
    
        } 
    }; 
    
    request.onerror = function() { 
        // There was a connection error of some sort 
    }; 
    
    request.send(); 
    

    2:「如何使用重定向用戶到URL(使用Javascript /任何框架您正在使用)「並將其與3」如何設置URL參數(使用Javascript /任何框架)「

    3.-」如何訪問URL參數(JavaScript /任何框架,你是使用)「

    如果你Google那些3你應該能夠做你需要做的。

    0

    當用戶開始打字時,將用戶重定向到新頁面看起來像是令人困惑的行爲。我建議您在用戶點擊搜索框時將用戶重定向到您的搜索頁面,或者您可以用鏈接替換框。如果你需要來自請求頁面的參數,你可以將它們附加到你的url,比如myexamplesite/search?myparam = Thethingineed

    +0

    我只是在他們點擊輸入或搜索後重定向他們,問題是正確計時,所以更新頁面的JS運行在新加載的搜索頁面上,而不是搜索框填充的頁面 – compsci45000

    +0

    啊。好的。也許可以在頁面加載完成後在搜索頁面上運行單獨的腳本?你可以隨時在url中獲取你需要的數據。根據JS運行和頁面加載速度,似乎對我來說很容易出錯。 – JsTinker