14
|
Ritesh M Nayak beny23 · 技术社区 · 15 年前 |
1
16
上述解决方案的问题在于,可以使用简单的:
一旦被召唤,那么
如果您想要该解决方案的一致功能版本,我建议您改为这样做:
不幸的是,这确实会导致留下一个问题——检索已设置的间隔、取消设置间隔,然后重新定向页面是一件微不足道的事情:
您最好的选择实际上是在服务器端解决这个问题(如果可以的话)。如果您有权访问将保存iframes的网站服务器,请创建一个临时代理位置,从中提取网站数据,然后删除脚本标记:
然后您将使用标签:
不幸的是,这意味着您的iframe将在没有javascript的情况下运行,如果不完全将所讨论的网站分块的话,它可能会损坏。您还需要确保为外部站点的HTML中的后代节点正确修改了所有SRC属性。 另一方面,您可以让您的服务器检查框架站点及其所有JS页面,以查看regexp top(.[\s*(“”)位置(这将匹配top.location、top[”location和top[”location)是否存在(或者是否存在对top的任何引用),然后使用链接(如果存在)以及站点是否正确(如果不存在)。这样做的不利之处在于,您强迫用户等待辅助站点加载两次——一次在服务器上,一次在浏览器中。(除非一切都是通过JS完成的,但在我看来,这通常更烦人)。
就我个人而言,我认为“不构建我的站点”的人群通常可以赢得大多数直接涉及i frame的战斗。另一方面,如果在将HTML附加到网页之前使用代码来处理HTML,那么另一方就不只是一个战斗的机会。
|
2
6
如果您使用的是HTML5,我建议您使用新的“沙盒”属性,但它还不能与所有浏览器兼容。 http://www.w3schools.com/tags/att_iframe_sandbox.asp 在我的例子中,我只是添加了“allow forms”和“allow scripts”作为沙盒属性值,嵌入的站点不再重定向,仍然可以运行javascript。 使用“允许顶部导航”作为值使网站再次重定向!
前任:
如果有人知道使用这种方法的任何缺点,我很想知道。 有相同答案的其他人: https://stackoverflow.com/a/9880360/1404129 (我后来偶然发现这个答案) |
3
3
你可以试着创造一个框克星巴斯特,一切都是由杰夫阿特伍德在他的博客中描述的: We Done Been ... Framed! - coddinghorror.com 简言之,您应该实现如下内容:
|
Softly · 单选按钮未按预期取值 1 年前 |
SlickRed · 我无法使用JS关注HTML元素 1 年前 |
assembler · Nextjs没有处理发布请求 1 年前 |
BADRUM · 执行两个获取功能后,如何导航回页面? 1 年前 |
Toniq · javascript为php保存多维数组 1 年前 |