2015-03-31 85 views
1

這可能是一個非常愚蠢的問題,但我無法在任何地方在線找到它,並且我一直在尋找至少一個小時。使用JavaScript打開另一個html頁面時傳遞變量

我有一個鏈接<a href="MusicMe.html" id="instrumentsNav">Instruments</a>,我想要得到它的ID一旦點擊,因爲我需要傳遞一些變量到我打開的頁面,知道工具鏈接被點擊。這是正在從productInformation.html

叫我自己也嘗試做<a href="#" onclick="instrumentsClick()" id="instrumentsNav">Instruments</a>,然後在我的JavaScript,window.open("MusicMe.html", "_self");,然後試圖傳遞一個變量的方式,但還是絕對沒有運氣。任何關於如何在打開頁面時將變量傳遞迴頁面的幫助都很棒。

打開後,我使用該變量來設置元素的ID,以便它只顯示一組信息,它正在處理它自己的信息,但當我回去嘗試調用它時,它是總是認爲它顯示了他們全部,因爲我無法弄清楚如何設置變量來定義它。不幸的是我需要使用JavaScript而不是PHP。

謝謝。

+0

你嘗試的onclick = 「instrumentsClick(this.id)」 – 2015-03-31 08:37:06

+0

是但隨後,在功能我用window.open,無法工作,如何通過ID當我打開html – Navvy 2015-03-31 08:38:26

+0

你可以將它作爲查詢字符串傳遞,檢查hiral的答案 – 2015-03-31 08:40:04

回答

4

我只想告訴你有些方法,希望你能夠實現它:

  1. 使用查詢參數傳遞變量。

當您導航到另一個頁面時,將查詢參數添加到URL。

window.open("MusicMe.html?variable=value", "_self"); 

在你的下一個頁面,通過獲取window.location.href和使用正則表達式?後的PARAMS分裂和獲取數據的檢查queryParam。

  • 使用的localStorage /餅乾
  • 導航到下一個頁面之前,在你的localStorage設置一個變量

    localStorage.setItem("variable","value"); 
    window.open("MusicMe.html", "_self"); 
    

    在第二個頁面的窗口加載事件。

    $(function() { 
         if(localStorage.getItem("variable")) { 
    
         // set the ID here 
         // after setting remember to remove it, if it's not required 
         localStorage.removeItem("variable"); 
         } 
    
        }); 
    
    +0

    非常感謝,我現在明白了:)我早些時候嘗試過第二次,但由於某種原因它沒有返回任何內容,但第一個出色的工作,我現在明白了 – Navvy 2015-03-31 08:58:42

    0

    您可以使用localStorage的保留值,或使用參數類似

    href="MusicMe.html?id=111"

    傳遞價值,新的一頁。

    0

    你可以簡單地傳遞#值到URL,得到它,然後用「相對」與之相匹配的屬性指定的元素給出。 在這裏,我已經完成了從另一個頁面上的鏈接物化可摺疊打開。

    JS:

    var locationHash = window.location.hash; 
    var hashSplit = locationHash.split('#'); 
    var currentTab = hashSplit[1]; 
    $('.collapsible > li').each(function() { 
        var allRels = $(this).attr('rel'); 
        if(currentTab == allRels){ 
         $(this).find('.collapsible-header').addClass('active'); 
         $(this).attr('id',currentTab); 
        } 
    }); 
    
    +0

    通過使用此方法,您可以將值從一個頁面傳遞到另一個,而不使用'localstorage'。 – ashwini 2017-05-02 12:30:44

    相關問題