在html页面之间共享变量

Rea*_*ord 4 html javascript variables

首先,我知道StackOverflow中有这个主题,但我还没有完全理解它是如何工作的,正好阅读现有的答案.所以,对不起,我希望现在明白了.

我不知道我的appoach是不正确的,为什么它不正确.

我有一个html页面,就像是另一些"遮阳板",所以从这个"主"页面,我可以看到其他人将它们嵌入遮阳板页面区域(使用iframe).

同时,我为所有页面(包括遮阳板)都有一个共同的.js文件.

因此,例如,如果我在.js中使用"hello world"(字符串类型)的valor声明变量,我可以从visor或嵌入页面访问此变量,并且仍然具有其原始值.但是如果我从遮阳板(或嵌入式)改变它的英勇,则另一页无法读取从另一页改变的新英勇.

它可能使页面之间的全局变量?

我尝试使用localStorage,但它只适用于使用它的特定页面.

所以,让我们看看,或多或少:

.JS文件

var Example = "Hello world";

function TellMe()
{
    alert(Example);
}

function ChangeVar()
{
    Example = "Goodbye world";
}
Run Code Online (Sandbox Code Playgroud)

第1页(当然,在头部中引用了.js文件)

<div onclick="ChangeVar();">click!</div>
Run Code Online (Sandbox Code Playgroud)

第2页(当然,在头部中引用了.js文件),但是点击了第1页的AFTER div

<div onclick="TellMe();">click!</div>
Run Code Online (Sandbox Code Playgroud)

这会提醒"Hello World",取代"Goodbye World".

所以我理解每个页面都有自己的.js变量版本,即使所有页面都使用相同的.js,甚至当一个html从另一个访问时(嵌入iframe).

如何在点击第2页的div并显示"Goodbye World"消息后得到此示例?


我会更加解释,看到大量的答案讲述黑客攻击,浪费其他页面,并夸大银行账户.

它只是一个文档页面(来自软件),我有一个"遮阳板"页面,从中我可以访问其他页面.实际上我在根文件夹中有"visor"页面,而其他页面,在这个根目录下的一个文件夹里面,都会在同一个域中,不是吗?

我想要页面上的"下一个"和"普通"按钮,以避免用户回到遮阳板并选择新页面,但我需要知道用户正在观看的页面的编号,以了解下一页或前面显示的页面.

gok*_*kul 5

我将在localstorage上分享一个非常简单的例子来解决你的需求.考虑你有两个文件page1.html和page2.html.

在page1.html里面添加以下行

<div id="notes">
</div>

<script>
if(typeof(Storage)!=="undefined")
  {
  localStorage.lastname="Smith";
  document.getElementById("notes").innerHTML="Last name: " + localStorage.lastname;
  }
else
  {
  document.getElementById("notes").innerHTML="Sorry, your browser does not support web storage...";
  }
</script>
Run Code Online (Sandbox Code Playgroud)

在page2.html里面

<div id="notes">
</div>

<script>
if(typeof(Storage)!=="undefined" && localStorage.lastname)
  {
  document.getElementById("notes").innerHTML="Last name: " + localStorage.lastname;
  }
else
  {
  document.getElementById("notes").innerHTML="Sorry, your browser does not support web storage...";
  }
</script>
Run Code Online (Sandbox Code Playgroud)

您现在可以在任何页面中访问localstorage中的值.

另外一个选项

您可以通过querystring参数将值从一个页面传递到另一个页面.例如.<a href='page2.html?index=someValue'>goto next page</a> 现在在page2.html中,您可以通过javascript获取此索引值并设置所需字段.

希望能回答您的疑问.


Nic*_*zel 1

这里的问题是安全问题Javascript

由于问题,即使执行简单的事件(例如jQuery .load()页面上的附加脚本)也不会加载CORS

Variables无法在页面之间传递,尤其是在 页面之间iframes,因为可能会发生各种恶意活动。

JS我的建议是在您正在进行的每个操作中加载相同的文档iframe(如果您能够这样做)。

您将无法将load js文件写入不在您的域中的网站。