Skip to content

防止网页被嵌入框架的代码

🕒 Published at:

TIP

限制所有人使用并重定向至原网址

html
<script type="text/javascript">
  if (window!=top) // 判断当前的window对象是否是top对象 top.location.href = window.location.href; // 如果不是,将top对象的网址自动导向被嵌入网页的网址
</script>

使用该代码后所有人只要把你的网页嵌入框架,就会重定向到你的网页网址

只允许自己使用的域名嵌入

javascript
try {
  top.location.hostname
} catch (e) {
  top.location.href = window.location.href
}

在 IE 和火狐等浏览器上 top.location.hostname 会报错,这种错误叫做"没有权限"。进一步说,浏览器甚至不允许你查看 top.location.hostname,跨域情况下,一看到这个对象,就直接报错。

所以以上代码判断如果存在跨域报错,即表示嵌入网页域名不是属于自己的,于是重定向至原网页

存在一个特殊情况是在跨域情况下,Chrome 对 top.location.hostname 不报错!

javascript
try {
  top.location.hostname

  if (top.location.hostname != window.location.hostname) {
    top.location.href = window.location.href
  }
} catch (e) {
  top.location.href = window.location.href
}

以上是完善 Chrome 存在特殊情况的代码。使用以上代码其他域名一律无法将你的网页嵌入框架

Powered by 荣顶
|
Copyright © 2018-present
|
Released under the MIT License
|
Views: