<script type="text/javascript">
if (self === top) {
var antiClickjack = document.getElementById("antiClickjack");
antiClickjack.parentNode.removeChild(antiClickjack);
} else {
top.location = self.location;
}
</script>
我有这个代码,不允许使用iframe,但我想只允许来自google.com的iframe,我该怎么做?
我认为伪代码会是
if (self === top) or google.com
但不知道如何在javascript中执行此操作
答案 0 :(得分:0)
您可以使用top.location.host
检查主机名,如下所示:
if (self === top || top.location.host === 'google.com') {
//good to go
}
但如果主机名不同,则无法更改顶部的位置:
if (self != top) {
document.write('cross domain');
}
if (self.location.hostname !== top.location.hostname) {
top.location.href = self.location.href; //throws exception
}
抛出:
Uncaught SecurityError:阻止具有原点的帧 &#34; http://mbr.domain2.com&#34;从访问原始框架 &#34; http://mbr.domain.com&#34 ;.协议,域和端口必须匹配。
所以,我不认为这会做你想做的事。