2012-03-16 34 views
2

这里真的很棒。其实问题是,我有2个网页名称为menu.html & index.html。在menu.html我有3个按钮像“一,二,三”,当我点击任何一个按钮,它会重定向到index.html。所以,我写了一个common.js文件来获取我在menu.html中点击的按钮的价值。我已将common.js包含在menu.html & index.html中。使用jquery获得另一个页面中变量的值

common.js:

var text=" "; 
$(document).ready(function() { 
    $('input:button').click(function() { 
     text = $(this).val(); 
     alert(text); //here am getting correct values for a button like 'one,two or three' in menu.html page 
     }); 
}); 

现在我需要在another.js文件,该文件是index.html中获得 “文本” 的价值。

another.js:

$(document).ready(function() { 
    alert("text "+text); //here am getting empty value. 
}); 

而且我包括正确的index.html:

<script src="common.js" type="text/javascript"></script> 
<script src="another.js" type="text/javascript"></script> 

什么我做错了什么?提前谢谢你。

回答

4

您可以使用localStorage()函数,localstorage会像cookie一样保存您的数据,但它非常省力,因为localstorage可以保存比cookie更大的数据。

你的情况

也许这样

$(document).ready(function() { 
    $('input:button').click(function() { 
     localStorage.setItem("text",$(this).val()); 
     }); 
}); 

,然后在另一个页面,你只是这个

$(function(){ 
alert("text" + localStorage.getItem("text")); 
}); 

这是细节local storage

+0

...或这个。确保你的浏览器首先支持它。 – 2012-03-16 07:02:42

+0

@viyancs:嘿,这里的东西会出错,它不会将值存储到“文本”中。如果我给警报(文本)它的打印空(空)只。如果我们必须使用一些重置和其他一些功能意味着它会出错,我认为。 – ssss05 2012-03-16 07:36:42

+0

yes因为'var text'没有值,所以可以用变量'text = localStorage.getItem(“text”);'和'alert(text)来定义;'这就是你设置的返回值在localStorage.setItem(“text”,$(this).val());' – viyancs 2012-03-16 07:40:26

3

包括两个相同的JavaScript文件通知单独的HTML页面将不会将变量值彼此携带。所以这并不意味着你的common.js在这两个文件中,你可以访问在另一个页面上修改过的东西。

您可能想要使用cookie或查询字符串,或者使用一些服务器端代码magic。

+0

或@viyancs建议如下。 – 2012-03-16 07:03:21

相关问题