从使用JavaScript的jQuery得到的iframe页面标题(get iframe page

2019-08-18 06:48发布

如何获得IFRAME SRC页面的标题,然后设置主页面标题

Answer 1:

如果你想使用jQuery来做到这一点:

var title = $("#frame_id").contents().find("title").html();
$(document).find("title").html(title);

你可以做到这一点,只有当页面上相同的域,否则无效。



Answer 2:

授予该I帧src和父文档SRC是同一个域:

父文档:

<html>
<head><title>Parent</title>
<body>
   <iframe id="f" src="someurl.html"></iframe>
   <script>
       //if the parent should set the title, here it is
       document.title = document.getElementById('f').contentWindow.document.title;
   </script>
</body>
</html>

someurl.html:

<html>
<head><title>Child</title>
<body>
  <script>
       //if the child wants to set the parent title, here it is
       parent.document.title = document.title;
       //or top.document.title = document.title;

  </script>
</body> 
</html>


Answer 3:

除非网页是在iframe是从同一个域中包含页,这是不可能的。

如果他们有相同的域,然后尝试以下方法:

document.title = document.getElementById("iframe").documentElement.title;


Answer 4:

一种方法可以共享标题和地点:

document.write('<iframe src="http://www.yourwebsite.com/home.html?title='+document.title+'&url='+window.location+'" frameborder="0" scrolling="no"></iframe>');

然后你可以阅读home.html的页面上的参数。



Answer 5:

这可以在页面上使用事件监听器来完成。 这不是特别优雅,但我的浏览器有支持尝试过它(所以IE9 +,火狐,Chrome)。

在您的主网站页面添加以下JavaScript:

function setPageTitle(event) {
    var newPageTitle = event.data
    // your code for setting the page title and anything else you're doing
}
addEventListener('message', setPageTitle, false);

在iframe中,你会再需要具备以下脚本:

var targetOrigin = "http://your.domain.com"; // needed to let the browser think the message came from your actual domain
parent.postMessage("New page title", targetOrigin); // this will trigger the message listener in the parent window


文章来源: get iframe page title from javascript using jquery