iframe父文档元素

时间:2012-11-17 12:02:08

标签: javascript html iframe parent

这应该根据我查找的所有内容工作,但事实并非如此。

我有一个带文档的HTML。它有一个div,它包含我想要访问的特定元素。

<li><a href="FAQ.html#" target="page" id="Faq">FAQ</a></li>

html文档还包含带有FAQ.html的iframe,其中包含以下加载代码:

<script>
function loaded() {
    parent.document.getElementById("Faq").style.color = "green";}
</script>

然而,没有任何反应。我究竟做错了什么? 错误控制台报告没有任何可以促进我的analasys的内容。

编辑: 这是一个基本概念。

https://dl.dropbox.com/u/32831239/Screenshots/htmlstructure.png

(不幸的是,stackoverflow不允许我发布截至目前的图片)

左侧div应该用作导航栏。在页面加载时,li条目应标有颜色(例如绿色)。

3 个答案:

答案 0 :(得分:0)

 <iframe src="test1.html" 
 style="float: right; 
 width: 260px; height: 130px; 
 margin-left: 12px; border: 1px solid black;" 
 name="#boogiejack">
Alternative Content
</iframe>

Test1.html内容

<li><a href="#" target="_new" id="Faq" onClick="javascript:loaded()">FAQ</a></li>
<script type="text/javascript">
function loaded() {
document.getElementById("Faq").style.color = "green";}
</script>

答案 1 :(得分:0)

使用onload event正文的FAQ.html来调用loaded function

<html>
<head>
    <script>
        function loaded() {
            alert("Hello !"); //alert to check if this is being invoked.
            parent.document.getElementById("Faq").style.color = "green";
        }
    </script>
</head>
<body onload="loaded();" >
...
</body>
</html>

或者只删除功能(no need to use body onload event)

<script>            
   parent.document.getElementById("Faq").style.color = "green";
</script>

答案 2 :(得分:0)

您可以在父级

中使用以下内容
var iframe = document.createElement("iframe");
iframe.src = urlToYourIframe;

// if this is IE then use attachEvent
if (iframe.attachEvent){

    iframe.attachEvent("onload", function(){
        parent.document.getElementById("Faq").style.color = "green";
    });

} else {

    iframe.onload = function(){
        parent.document.getElementById("Faq").style.color = "green";
    };

}

var el = document.getElementById("iFrameContainer");
el.appendChild(iframe);​