使用JavaScript打开另一个html页面时传递变量

时间:2015-03-31 08:34:35

标签: javascript jquery 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。

感谢。

4 个答案:

答案 0 :(得分:5)

我会告诉你一些方法,希望你能够实现它:

  1. 使用查询参数传递变量。
  2. 当您导航到其他网页时,请将查询参数添加到网址。

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

    在下一页中,通过获取window.location.href并使用正则表达式在?之后拆分参数来检查queryParam并获取该数据。

    1. 使用localStorage / cookies
    2. 在导航到下一页之前,请在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");
            }
      
        });
      

答案 1 :(得分:0)

您可以使用localStorage来保留值,或使用

之类的参数

href="MusicMe.html?id=111"

将值传递给新页面。

答案 2 :(得分:0)

您可以随时在您的网址中传递GET变量,就像这样myhost.com?var=value 您可以通过使用Js解析URL来获取此变量的值,请参阅此

How can I get query string values in JavaScript?

答案 3 :(得分:0)

您只需将#值传递给url,然后将其与&#39; rel &#39;匹配即可。在指定元素上给出的属性。 在这里,我已经完成了从另一个页面上的链接打开折叠。

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