在iframe中运行的javascript会影响主页吗?

时间:2009-06-04 17:25:16

标签: javascript iframe

部分代码:

我的下面的代码从我的数据库中提取查询,然后使用inner.HTML =来显示div中的数据。它在原始使用中工作得很好....

但是,在iFrame中调用以下版本,因为它用于更新页面。

页面没有错误,然后JavaScript会触发,但最后一行不起作用...

我刚刚意识到,可能因为它是在隐藏的iFrame中加载,它试图在iFrame中设置div的innerHTML,这当然不起作用。

这是发生了什么事吗?它没有意义,因为我有另一个脚本以相同的方式在它的末尾调用JavaScript并且它工作正常。

<?php
    while ($row = mysql_fetch_array($result))
    {
        $p = $p.'<div id="left"><img src="http://www.sharingizcaring.com/bleepV2/images/thumbs/'.$row[image].'" /></div>';
        $p = $p.'<div id="right"><h2>'.$row[artist].' - '.$row['title'].'</h2><br>'.$row['message'].'<br>';
        $p = $p.'<a href="http://www.sharingizcaring.com/bleepV2/'.$row[username].'">'.$row[username].'</a> '.$row[date].'</div>';
        $p = $p.'<div style="clear: both;"></div>';
        $p = $p.'<div id="dotted-line"></div>';
    }


    $p = addslashes($p);
?>

<script>

        alert('posts are firing? ');

        document.getElementById('posts').innerHTML = 'why doth this faileth?';
</script>

4 个答案:

答案 0 :(得分:5)

你可以做到! Read here for more info

您可以通过设置和获取窗口元素中的变量来影响包含iframe的文档:

// normally you use...
var whatever = "value";

// use the window object instead, which is shared 
// between the iframe and the parent
window.whatever = "value";

您应该知道的另一件事是您可以通过父对象访问主文档

在iframe中你可以使用......

parent.someattr;

// or try this
parent.getElementById('some_element');

答案 1 :(得分:2)

我认为你想要的是:

parent.getElementById('posts').innerHTML = 'why doth this faileth?';

答案 2 :(得分:1)

iframe中的部分不被视为同一文档。

答案 3 :(得分:1)

你必须使用父母。