【问题标题】:Javascript: how to get event of self.location change?Javascript:如何获取 self.location 更改的事件?
【发布时间】:2010-12-03 00:05:27
【问题描述】:

所以我想要这样做:

if (top != self) {
    top.location = self.location;
}

self.location;改变事件。 (如果真的需要,可以使用 Jquery,但我不想这样做)是否有可能以及如何做这样的事情?

主要想法是将所有弹出窗口保持在顶部。在这里,我们尝试修改窗口代码,以便当用户单击主页打开新页面时它会位于顶部。所以我想我们应该订阅并监听 self.location 更改事件。我想知道怎么做?

【问题讨论】:

    标签: javascript jquery html events javascript-events


    【解决方案1】:

    您是否正在尝试“框架破坏”?或者您想知道 top.location 何时更改?如果是后者,我认为这是为了检测 URL 的哈希标记值的更改,否则位置更改会加载一个新页面,因此您的 JS 将永远无法运行。

    如果您想检查井号标签更改事件(即 URL 中 # 之后的内容),请阅读 SO:On-Window-Location-Hash-Change 上的类似问题。

    如果这是关于框架破坏的,那么在 SO 上有很多很好的相关问题,例如Frame Buster Buster

    还有一篇关于Coding Horror 的有趣博文。

    【讨论】:

      【解决方案2】:

      你的意思是?

      if (top.location != self.location) { top.location=self.location; }
      

      【讨论】:

      • 是的,但我不需要只找到一次。我需要以某种方式订阅更改事件。
      • 只需将上面的内容放在一个 setInterval 中
      • @box9 对我来说似乎是个坏主意 - JS 它不会像需要的那样响应或会占用大量 CPU
      • @Kambumbus 我不确定是否还有其他方法 - 如果可以的话,但 setIntervals 对性能并没有那么糟糕,并且是许多事情的有效方法。看一个例子 - livequery:docs.jquery.com/Plugins/livequery
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-29
      • 1970-01-01
      • 1970-01-01
      • 2018-11-29
      • 2018-10-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多