使用JavaScript从另一个页面修改页面的HTML值

时间:2018-08-25 08:14:06

标签: javascript html ecmascript-6

考虑一个具有以下简单结构的名为HTML的{​​{1}}页面:

page1.html

是否可以通过<html> <title>Page1</title> <body> <h1>Hello</h1> </body> </html> 中的JavaScript更改<h1>上的page1.html文本?

如果有可能,如何实现这一目标?

3 个答案:

答案 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文本

您需要两件事:

  1. 首先,要更改<h1>中的实际文本,请使用.innerText方法的replace()属性。

  2. 要将地址栏中的URL从/page2.html更改为/page1.html,请使用History APIhistory.pushState()history.replaceState()方法。