如何将js变量从一个html文件传递给另一个?

时间:2012-01-16 10:14:52

标签: php javascript html variables

我的问题非常简单,但由于我仍然缺乏合并js,php和html的熟练程度,我无法找到解决此问题的方法。 问题涉及3个文件:

JS1.js

function foobar(foo){
...
}

这里foo与HTML1.html文件生成的foo相同

HTML1.html

...<?php
$something = Object->method();
$array = Object->anotherMethod($something);
echo "<script type=\"text/javascript\"> 
            var foo =" . json_encode($array) . ";
     </script> ";
?>
...

在这里我生成我的php数组的json_encode(d)版本

HTML2.html

...<head>
<script type="text/JavaScript" src="js/JS1.js">
</head>
<body>
...
... onClick = \"foobar(foo)\">";
...
</body>

在这里,基本上,我需要它作为在JS1.js文件中运行我的foobar js函数的参数

所以我的问题是,如何将foo从HTML1.html传递到HTML2.html

PS:很明显我有2个拆分的html文件,因为我需要它们两个都做不同的事情,否则问题甚至都不会发生:)只是为了清理事情

2 个答案:

答案 0 :(得分:1)

在这种情况下使用cookie: 在HTML1中,设置var foo后,将其设置为cookie 然后从HTML2

获取它

HELPER CODE(http://www.w3schools.com) 在js:

function setCookie(c_name,value,exdays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie=c_name + "=" + c_value;
}

function getCookie(c_name)
{
var i,x,y,ARRcookies=document.cookie.split(";");
for (i=0;i<ARRcookies.length;i++)
{
  x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
  y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
  x=x.replace(/^\s+|\s+$/g,"");
  if (x==c_name)
    {
    return unescape(y);
    }
  }
}

答案 1 :(得分:0)

你有两种方法可以做到,

  • 2:[这是一个非常糟糕的主意]让javascript添加一个值到最后 传递值的链接