使用javascript考虑跨站点脚本更改iframe的src(与主机页面不同的域)?

时间:2011-09-18 22:37:05

标签: javascript jquery scripting iframe cross-domain

我有一个带有iframe的页面,页面加载时没有源代码,只使用这样的硬编码html:

<iframe id="theframe" src="">
<html>
    <body>
         <form name="theform" action="http://domainB.com/new" method="POST">
         <input type="text" />
         </form>
    </body>
</html>
</iframe>

然后使用

在jQuery中提交表单
$('#theform').submit();

这会导致iframe的源从无(同一域)更改为发送和存储表单数据的domainB.com。

然后我延迟1秒以显示成功消息,然后希望通过将源更改为空(同一域)并附加原始表单来将帧设置回原始内容,如下所示:

    $('iframe').attr('src', '');
    $('iframe').contents().find('body').empty();
    $('iframe').contents().find('body').append('<form name="theform" action="http://domainB.com/new" method="POST"><input type="text" /></form>');

然而它不起作用...这个跨站点脚本虽然我没有尝试访问domainB的内部内容,但我只是将iframe的src设置回domainA ??

如果是这样,一旦将src更改为其他域,是否还要设置src?

(正如我写的最后一句话,我意识到我可以删除iframe并用新的替换它,我想?,但我仍然想知道更改源是否被视为跨站点,这就是为什么它是不工作?)

1 个答案:

答案 0 :(得分:2)

这只会返回truefalse

$('iframe').attr('src') == '';

也许你正在寻找这个:

$('iframe').attr('src', '');