0

我有两个文件

数据处理器.js

var FROM;
 var TO;
var CONTECT;

function getValues(fromAdd,toAdd,ContectText){
 alert("method called");
  FROM=fromAdd;
  TO=toAdd;
  CONTECT=ContectText;
 alert("values are " + FROM +" "+ TO +" "+ CONTECT);
 window.open('email.html','newwindow');
}

电子邮件.html

在车身装载期间

function loadData(){
    document.getElementById('lblFrom').innerHTML =window.FROM;
    document.getElementById('lbTo').innerHTML = window.TO;
    document.getElementById('lblfrom1').innerHTML = window.FROM;
    document.getElementById('lblto1').innerHTML = window.TO;
    document.getElementById('txtAreaBody').value =window.CONTECT;

}

我如何将 From、to、contect 传递给 EMail.html?我在 Body Onload 中编写了 loadData 函数。结果获取未定义的值。从另一个 HTML 调用 getvalues 函数。

4

2 回答 2

0

所以变量 FROM、TO、CONTECT 有时会在 getValues() 中设置。然后调用 loadData(),以便加载的 HTML 使用您获得的值。所以我假设 getValues() 和 loadData() 在同一个 JS 上下文中,并且变量可以直接访问。

更改此代码:

     document.getElementById('lblFrom').innerHTML =window.FROM;

      document.getElementById('lblFrom').innerHTML = FROM;

对其他变量进行类似操作。

PS:发布代码时,请同时注明流程。发布随机代码片段不会帮助我们理解问题。

于 2013-01-03T11:40:49.127 回答
0

每个 HTML 文档都有自己的 Javascript 上下文。因此,您不能从另一个 HTML 页面访问变量。

但是您可以做的是将这些变量作为 URL 的一部分进行传输。您可以使用 ? 运算符将 URL 与传递给它的数据分开。例子:

email.html?from=somewhere&to=somewhereElse&connect=somevalue

网络服务器只会将所有内容解释?为文件名的一部分,其余的是传递给它的 GET 参数。所以网络服务器将返回文件 email.html。在该页面上,您可以访问完整的 URL 并使用变量解析参数document.location

另一种选择是使用 cookie。但请记住,某些用户禁用了 cookie(比禁用 javascript 的用户更多),因此您不应依赖它们来实现网站的任何主要功能。

然而,最好的方法是将所有数据存储在服务器上并使用会话处理机制,该机制在可用时使用 cookie 和 GET 参数作为后备来为每个单独的用户分配会话 ID。这样做最重要的好处是用户不能轻易篡改数据。然而,这不能单独使用客户端 javascript 来完成,因为它需要服务器端脚本。

于 2013-01-03T11:09:10.700 回答