假设我在iframe.domain.com上显示iFrame。我希望此iframe能够显示iframe.domain.com或sub.domain.com中的内容。但这些网站包含指向外部网站的链接,例如google.com。如果用户点击将其重定向到google.com的链接,我希望将iFrame重定向到sub.domain.com
我该怎么做?
答案 0 :(得分:0)
您可以使用e.preventDefault()
来实现此目的
实现这个目标
现在要在框架中的链接上设置onclick处理程序,您可以使用此功能
function onLoadIF(frame)
{
var elements = frame.getElementsByTagName('a'),
len = elements.length;
while( len-- ) {
$(elements[len]).on('click', function(e){
e.preventDefault();
}
}
}
答案 1 :(得分:0)
我想扩展Arno_Geismar所说的内容。
您还有其他选择:
1)HTML5!
<iframe sandbox="value">
沙盒属性将:
沙箱属性为iframe中的内容启用了一组额外的限制。
当沙箱属性存在时,它将:
沙箱属性的值可以是沙箱(然后应用所有限制),也可以是以空格分隔的预定义值列表,这些值将删除特定限制。
2)Javascript:如果你正在使用jquery,你可以简单地把这个
$(document).ready(function(){
$('a').click(function(event) {
event.preventDefault();
});
});
这基本上(几乎)与Arno_Geismar给你的解决方案相同。这里的不同之处在于我并不需要遍历所有&#34; a&#34;元素,从而提高一点性能
答案 2 :(得分:0)
我遇到了这个问题,我确定的解决方案是:
在您的 meta
部分放置一个 Content-Security-Police <header>
标签:
<meta http-equiv="Content-Security-Policy" content="frame-src https://desired_domain.com/">
如果您想阻止链接打开新标签页,请在您的 sandbox
中使用 <iframe>
属性:
<iframe src="https://desired_url.com" sandbox="allow-same-origin allow-scripts"></iframe>