如何解决提交iframe中的内容后,需要退出iframe
| 好的,我正在页面上使用iframe。我无法控制iframe中的内容,并且该内容正在与Adobe Flash程序一起使用。 但是,一旦将表单提交到iframe中(同样我无法控制),它就会加载一个页面,我确实可以控制该页面,但是该页面位于IFRAME中,而不是从该页面的iframe中分离出来。如何仅在该页面上退出iframe? 我假设需要一些Javascript,但是这段代码不好:if (top.location != self.location) {
top.location = self.location;
}
使用此代码将加载网站的主索引页面。我需要它只是在提交表单后加载页面并中断它。同样,在表单在iframe中提交后,我可以访问在iframe中加载的页面。
请帮我。
也许涉及一种棘手的方法?例如,当页面正在加载时?还是以某种方式检查iframe是否已提交?我控制着我网站上的两个页面(原始保存iframe的页面和iframe提交到的页面),而不是iframe的内容。
谢谢 :)
解决方法
我相信你想要这个
if(this != top){
top.location.href = this.location.href;
}
寻求突破
它可能也需要文档参考...我不在电脑旁检查。
if(this != top){
top.document.location.href = this.document.location.href;
}
, 对我有用的是:
(function () {
\'use strict\';
console.log(\'window.top.location\',window.top.location);
console.log(\'window.location\',window.location);
if (window.location !== window.top.location) {
window.top.location = window.location;
}
})();
受https://css-tricks.com/snippets/javascript/break-out-of-iframe/启发
, css-tricks.com上的Chris Coyier对如何执行此操作进行了很好的简洁说明。
一种方法对于观察者来说更加清晰(就像生产Javascript代码可以说是“清晰”一样):
(function(window) {
if (window.location !== window.top.location) {
window.top.location = window.location;
}
})(this);
另一个要短得多,但也比较棘手,不太明显:
this.top.location !== this.location && (this.top.location = this.location);
同样,在应归功的地方归功于我:我没有写这些代码片段,我只是将它们传递给别人,因为它们回答了问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。