【问题标题】:How to change web title while in object tag with javascript如何在使用 javascript 的对象标签中更改网页标题
【发布时间】:2021-04-20 07:02:55
【问题描述】:

如何使用javascript从<object>标签更改网页标题?

此代码来自 ma​​in.html,其中包括 <object>

<html>
  <head>
    <title>main title</title>
  </head>
  <body>
    <h1>home</h1>
    <div>
      <object type="text/html" data="home.html"></object>
    </div>
    <script src="script.js"></script>
  </body>
</html>

home.html 中,我想通过单击按钮将 ma​​in.html &lt;title&gt; 标记更改为 home 标题

此代码来自我的 home.html

<html>
  <body>
    <button onclick="home();">change main title</button>
    <script src="script.js"></script>
  </body>
</html>

这是我的 javascript 代码

function home() {
  window.parent.title = "home title";
}

【问题讨论】:

    标签: javascript html


    【解决方案1】:

    这里可能有两个问题:

    首先,titlethe document object 的属性,它不是全局属性。所以你需要:

    window.parent.document.title
    

    其次,如果您在浏览器中打开开发人员工具并查看控制台。您可能会看到如下错误消息:

    Uncaught DOMException: Permission denied to access property "title" on cross-origin object

    除非您使用 HTTP(或 HTTPS)从同一来源加载它们,否则跨帧通信是不可能的。

    确保您的文档是从网络服务器加载的,而不是直接从您的磁盘加载的。

    (尽管参见 postMessage API)。

    【讨论】:

    • 感谢您的解释,这是我正在寻找的最佳答案。当我在网络服务器上运行它时,它可以完美运行??
    【解决方案2】:

    试试document.title = ""

    有件事告诉我,您花在研究上的时间非常有限,但请继续。

    【讨论】:

    • 行不通。它会更改框架中文档的标题,而不是父窗口中的标题。
    • @Quentin 如果我可以对自己投反对票,我会的。你是绝对正确的!我的回答导致跨源错误。我看到 script.js 包含在 main.html 中,所以我认为它没问题。但这会导致home is undefined javascript 错误。好收获!
    【解决方案3】:

    您可以通过document.title更改网页标题

    function home() {
      document.title = "home title";
    }
    

    【讨论】:

    • 行不通。它会更改框架中文档的标题,而不是父窗口中的标题。
    【解决方案4】:

    使用window.parent.document.title 访问父文档的标题。请参阅this 问题。

    【讨论】:

      【解决方案5】:

      也许试试这个。似乎在这里工作:link

      function home() {
        window.document.title = "home title";
      }
      

      【讨论】:

      • 行不通。它会更改框架中文档的标题,而不是父窗口中的标题。
      猜你喜欢
      • 2012-01-29
      • 1970-01-01
      • 1970-01-01
      • 2022-01-02
      • 1970-01-01
      • 2012-12-12
      • 2017-07-02
      • 2018-04-04
      • 1970-01-01
      相关资源
      最近更新 更多