javascript - 使用 javascript 更改 iframe 的 src(与主机页面不同的域)是否被视为跨站点脚本?

标签 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 更改为不同的域,是否仍然可以设置它?

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

最佳答案

这只会返回 truefalse

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

也许您正在寻找这个:

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

关于javascript - 使用 javascript 更改 iframe 的 src(与主机页面不同的域)是否被视为跨站点脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7464918/

相关文章:

javascript - function F() { if (!(this instanceof F)) { return new F() }; ... }

programming-languages - 什么时候一种语言被视为脚本语言?

regex - 如何用一个 sed 命令将第一个字母替换为大写

linux - 过去 15 分钟创建的 Tar 文件并将它们 SCP 到我的本地计算机。 (使用 Cygwin)

javascript - 使用时是否需要使用 "="? : javascript shortcut?

javascript - 检查 json 数据中的值,然后获取其 key

jquery - 显示按字母顺序排列的搜索结果时如何修改行数

jquery - 显示jquery val()自动求和值

javascript 无法对元素应用查找

PHP、JQuery ajax 不工作