有时会看到以下代码:

  1. if(self!=top){
  2. top.location.href=self.location.href;
  3. }
  4. // 意思是本网页不允许被框架,目的是防止你的网页被引用在别人的页面中。
  5. // top指向最顶层框架的window对象,self指向当前框架的window对象。
  6. // 如果网页中没有iframe,则top和self是同一个值,
  7. // 所以这段代码可以防止自己的网页被别人用iframe的方式嵌入到其它网页中去。

top.location.href和localtion.href有什么不同

  1. top.location.href=”url 在顶层页面打开url(跳出框架)  
  2. self.location.href=”url 仅在本页面打开url地址  
  3. parent.location.href=”url   在父窗口打开Url地址   
  4. this.location.href=”url    用法和self的用法一致
  5. if (top.location == self.location) 判断当前location 是否为顶层来,禁止frame引用,如果页面当中有自定义的frame的话,可以将parentselftop换为自定义frame的名称,效果就是在自定义frame窗口打开url地址。

eg:

  1. top.htm代码:
  2. <script language=javascript>
  3. function rs(){
  4. if(top !== self) {
  5. top.location.href = location.href;
  6. }
  7. parent.left.location.href="top.htm";
  8. parent.bot.location.href="top.htm";
  9. }
  10. </script>
  11. <input type=button name=name value="ksdj" onclick=rs();>
  12. 以下是一个随意文件名的htm文件:
  13. <FRAMESET COLS="150,*">
  14. <FRAME SRC="left.htm" name=left>
  15. <FRAMESET ROWS="150,*">
  16. <FRAME SRC="top.htm" name=top>
  17. <FRAME SRC="bot.htm" name=bot>
  18. < /FRAMESET>
  19. < /FRAMESET>
  20. top表示主窗口,location表示当前窗口,如果你的文件只有一个框架,没有iframe和frmaeset,那么是完全一致的,没有区别。
  21. top.location是在顶层frame中打开新页 window.location是在当前frame中打开新页。
  22. parent.location 在当前窗口的父窗口打开Url地址。

Location 对象

Location 对象包含有关当前 URL 的信息。
Location 对象是 window 对象的一部分,可通过 window.Location 属性对其进行访问。

属性:

hash 返回一个URL的锚部分
host 返回一个URL的主机名和端口
hostname 返回URL的主机名
href 返回完整的URL
pathname 返回的URL路径名。
port 返回一个URL服务器使用的端口号
protocol 返回一个URL协议
search 返回一个URL的查询部分