大家好,我的网站有问题。情况如下:
第1页
<script type="text/javascript" src="jscript.js">
<input type="button" value="change" onClick="changeAttr()">
第2页
<script type="text/javascript" src="jscript.js">
<input type="text" value="Hello" id="dynamictext">
jscript.js
function changeAttr(){
document.getElemenyById('dynamictext').value="World";
}
现在这两个页面在不同的标签上打开。我想要发生的是,只要点击第1页上的按钮,第2页上的输入文本的值将变为“世界”。如何使用Javascript或Jquery实现这一点?
答案 0 :(得分:5)
第一个选项卡的任务是更改localStorage中的值。
localStorage.setItem('superValue', 'world');
同时第二个标签将是&#34; listen&#34;更改localStorage值:
var dinamictext = document.querySelector('dinamictext');
setInterval(function () {
if (dinamictext.value !== localStorage['superValue']) {
dinamictext.value = localStorage['superValue'];
}
}, 100);
这当然只适用于同一域名的页面。
答案 1 :(得分:0)
您无法直接从一个标签访问另一个标签。那将是一个严重的安全问题。
这两种方法都允许您共享数据。然后,您必须定义自己的协议,以便根据收到的命令操作DOM。
答案 2 :(得分:0)
您可以使用HTML5存储空间。 Here是一个简单的例子
答案 3 :(得分:0)
如果两个页面属于同一站点,则其他答案都是完美的。但是,如果它们不在同一站点上,则需要服务器解决方案。一个页面将向服务器发送请求,另一个页面也必须调用服务器查找指令,并在收到指令时执行这些指令。在那种情况下,如果它们位于不同的站点上,AJAX可能不起作用,你不得不求助于JSONP。