【问题标题】:/How to get active Tab url in safari browser using java script/如何使用 javascript 在 safari 浏览器中获取活动标签 URL
【发布时间】:2012-08-27 04:52:21
【问题描述】:

如何在 safari 浏览器中使用 java 脚本获取浏览器窗口或活动标签 URL?

我尝试使用 ->

文档.url

window.location.href

但这两种解决方案都给了我这么多网址。不知道为什么?

我还搜索到 safari.application.browserWindow.activeTab 给出了当前活动窗口的 obj 。但是不知道activeTab类提供了哪些方法

如果有人知道,请帮助我。提前致谢。

【问题讨论】:

  • “这么多网址”是什么意思?您需要显示您尝试过的两种方法返回的内容。此外,完整地输入“please”也不会受到影响。
  • 显示此网址以找到解决方案:: developer.apple.com/library/safari/#documentation/Tools/…
  • 请忽略前面的评论。它显示了两次不同的 url,就像 facebook.com 一样,然后它显示了原始 url。在每个浏览器上,它会加载 3 次,然后给我们 3 个不同的 url。我想制作插件,所以我想要我们作为 url 链接输入的确切 url。给我如何从浏览器获取 url 的解决方案。 developer.apple.com/library/safari/#documentation/Tools/…

标签: javascript url safari-extension


【解决方案1】:

如果你只想要当前选项卡中“顶部”文档的 URL,可以使用

safari.application.activeBrowserWindow.activeTab.url

在您的扩展程序的全局页面中。

SafariBrowserTab 类的属性和方法在这里给出:https://developer.apple.com/library/safari/#documentation/UserExperience/Reference/SBrowserTabClassReference/SafariBrowserTab.html#//apple_ref/doc/uid/TP40009793

我从您的问题推断出您的扩展程序正在使用注入脚本,该脚本将运行它的页面的 URL 报告给全局页面。您的全局页面正在接收多个 URL,因为注入的脚本不仅在选项卡的“顶部”文档中运行,而且还在其中的每个 iframed 文档中运行。

如果您想阻止注入的脚本在 iframe 中运行,请将代码包装在如下语句中:

if (window == window.top) {
    // do stuff
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-03
    • 2012-10-29
    相关资源
    最近更新 更多