我正在使用HTML / CSS和JavaScript编写网站。 我在同一个文件夹中有两个html页面,我在两个窗口中打开它们。我想让他们沟通。作为一个例子,当我点击第一页上的按钮时,它应该激活第二页上的一个功能。喜欢移动div或类似的东西。
这里的例子是带有JavaScript的第一个html文件:
function function() {
document.getElementById('box').style.marginLeft = 5 + "%";
}
<!DOCTYPE html>
<html>
<head>
<script src="index.js"></script>
</head>
<body>
<button onclick="function()">Click here</button>
</body>
</html>
这里是CSS的第二个html文件:
#box {
background-color: blue;
height: 50px;
width: 50px;
margin-left: 1$;
transition: 1s;
}
<!DOCTYPE html>
<html>
<head>
<script src="index.js"></script>
</head>
<body>
<div id="box"></div>
</body>
</html>
当我点击第一个html文件上的按钮时,它应该移动第二个html页面上的div
。他们可以使用相同的JavaScript。但是我怎么能这样做呢?
答案 0 :(得分:1)
你不能只用JavaScript做到这一点。重点是:JS是一种客户端语言,这意味着它由客户端(浏览器)下载并由它(而不是服务器)运行。对于2页进行通信,您可以通过某种媒介以某种方式建立通信。媒介可以是:
因此,如果您对第三个选项感兴趣,请阅读window.open
,window.opener
,window.parent
。
var newWindow = window.open(url, name, params);
将打开一个新窗口(比如你的第二页)并为你带来一个变量newWindow
,它是对打开窗口的window
对象的引用。试试例子
newWindow.write("haha, I'm controlling this stuff!");
同样,在第二个窗口中,您可以使用
var oldWindow = window.opener;
您还可以使用多种方法(window``.close
,.moveBy
,.moveTo
,.resizeBy
,.resizeTo
等等。
但请注意,此次互动仅限于您的浏览器:如果您将某些内容更改为,则会在浏览器中显示(例如在页面中添加一些文字),这样就不会受到影响影响存储在服务器上的实际页面,因为这需要服务器通过某些服务器端脚本执行某些操作。
PS推进此技术,您可能希望阅读window.postMessage
,但这主要是为跨域网页之间的通信而设计的。
答案 1 :(得分:0)
尝试使用 cookie。这是我能想到的最简单的方法。这个网站看起来很有帮助:https://www.w3schools.com/js/js_cookies.asp