如何获取iframe src页面标题,然后设置主页面标题
答案 0 :(得分:7)
如果你想使用jQuery:
var title = $("#frame_id").contents().find("title").html();
$(document).find("title").html(title);
只有当页面在同一个域上时才能这样做,否则它就没用了。
答案 1 :(得分:3)
授予iframes 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>
答案 2 :(得分:2)
除非iframe中的网页来自与包含页面相同的域,否则无法进行。
如果他们的域名相同,请尝试以下操作:
document.title = document.getElementById("iframe").documentElement.title;
答案 3 :(得分:1)
您可以分享标题和位置的一种方式:
document.write('<iframe src="http://www.yourwebsite.com/home.html?title='+document.title+'&url='+window.location+'" frameborder="0" scrolling="no"></iframe>');
然后您可以在home.html页面上阅读参数。
答案 4 :(得分:1)
这可以使用页面上的事件侦听器来完成。它不是特别优雅,但是我试过支持它的浏览器(IE9 +,Firefox,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