考虑一个具有以下简单结构的名为HTML
的{{1}}页面:
page1.html
是否可以通过<html>
<title>Page1</title>
<body>
<h1>Hello</h1>
</body>
</html>
中的JavaScript更改<h1>
上的page1.html
文本?
如果有可能,如何实现这一目标?
答案 0 :(得分:4)
假设您同时使用同一来源的两个HTML
(例如,如果您打开了两个Facebook标签),则可以使用'storage' event(标签之间共享本地存储)来解决此问题,像这样:
HTML1:
<script>
localStorage.setItem('message', JSON.stringify({ 'myContent': 'i like pizza' }));`
localStorage.removeItem('message');
</script>
HTML2
<script>
$(window).on('storage', e => {
var message = JSON.parse(e.originalEvent.newValue);
$('#myH1').text(message.myContent);
});
</script>
答案 1 :(得分:2)
我认为您要寻找的简短答案是“否”。
如果没有另一个静态页面,则不能使用它们来修改一个静态页面。
其他朋友提到的某些解决方案也可以使用,例如使用本地存储或填充cookie-仅当它们在同一浏览器上运行时-但这绝对需要对page1.html进行一些更改,这不是您的意思。重新寻找。
答案 2 :(得分:0)
由于您评论说它并不需要持久,因此您想要创建一种幻觉,即您正在使用<h1>
中的JavaScript更改page1.html
上的page2.html
文本
您需要两件事:
首先,要更改<h1>
中的实际文本,请使用.innerText
方法的replace()
属性。
要将地址栏中的URL从/page2.html
更改为/page1.html
,请使用History API
和history.pushState()
和history.replaceState()
方法。