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

在iframe中运行的javascript会影响主页面吗?,javascript,iframe,Javascript,Iframe,部分代码: 我下面的代码从我的数据库中提取一个查询,然后使用inner.HTML=显示div中的数据。它在最初的使用中运行良好 但是,以下版本在iFrame中调用,因为它用于更新页面 页面没有错误,JavaScript启动,但是最后一行不起作用 我刚刚意识到,可能因为它正在隐藏的iFrame中加载,所以它试图在iFrame中设置div的innerHTML,而这当然不会起作用 这就是正在发生的事情吗?这没有意义,因为我有另一个脚本,在它的末尾以同样的方式调用JavaScript,并且运行良好 &l

部分代码:

我下面的代码从我的数据库中提取一个查询,然后使用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>

警报(发射柱?);
document.getElementById('posts').innerHTML='为什么失败?';

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

您可以这样做

您可以通过从窗口元素设置和获取变量来影响包含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');

你必须使用家长。

我想你想要的是:

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

我才意识到是父母。这是我问题的一部分。我怎么打开窗户?window.getElementById和诸如此类?窗口。部分只是一个更全局的作用域,可以用于变量。注意:我不建议使用窗口,除非您必须。。。范围是一个美丽而有用的东西。。。如果一切都是全球性的,那就没用了,因为“为什么这会失败?”@IvanIvković谢谢,但我只是照搬了这一点。)