我有一个带有 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 并用一个新的替换它,我想?,但我仍然想知道更改源是否被视为跨站点,这就是为什么它是不工作?)
最佳答案
这只会返回 true
或 false
。
$('iframe').attr('src') == '';
也许您正在寻找这个:
$('iframe').attr('src', '');
关于javascript - 使用 javascript 更改 iframe 的 src(与主机页面不同的域)是否被视为跨站点脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7464918/