2015-03-31 88 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

    相关问题