如何使用 php 或 javascript 获取所有浏览器中当前打开的选项卡的 url?

Posted

技术标签:

【中文标题】如何使用 php 或 javascript 获取所有浏览器中当前打开的选项卡的 url?【英文标题】:How to get the url of currently opened tabs in all browsers with php or javascript? 【发布时间】:2011-09-27 01:20:11 【问题描述】:

如果有人可以指导一下或对如何使它成为可能知之甚少,请告诉我。

谢谢

【问题讨论】:

这是不可能的(除非您使用非常不安全或损坏的浏览器)。 可以通过扩展(firefox、chrome 等)实现这一点,但没有它就不行.. 您认为 php 应该如何实现这一点? PHP 在服务器上运行,无法访问用户的浏览器。 抱歉,我们不能用 PHP 做到这一点。欢迎使用 javascript 中的任何脚本.. 只需创建一个书签,然后将书签拖到一个 html 表单中。这需要用户交互,但这是可能的。 【参考方案1】:

实际上有一种方法,只需为所有标签添加书签,然后将书签拖到某个位置,例如到 html 表单,然后您可以使用例如 javascript 从那里读取它。我还不知道其他浏览器,但是在 Firefox 中,您会得到书签名称,然后是所有 url,所有内容都由换行符分隔,末尾没有尾随换行符。

【讨论】:

【参考方案2】:

如果您希望通过网页执行此操作,那么您无法通过在服务器端或客户端执行的任何语言来实现。

如果您在上下文中询问 Firefox 插件,这可能会有所帮助::

var tabs = require("tabs");
for each (var tab in tabs)
  console.log(tab.url);

但这仅适用于 Firefox 插件,不适用于普通的 javascript。

参考 https://addons.mozilla.org/en-US/developers/docs/sdk/1.0/packages/addon-kit/docs/tabs.html

希望这会有所帮助。

【讨论】:

如何使用此代码并获取标签网址。这是 Javascript 代码吗?如果是,那么它如何使用它。如果没有,我是否需要使用任何 API 来使用此功能? 如果你正在开发一个 Firefox 插件然后你使用这个代码来获取标签信息,这个代码并不意味着在浏览器 javascript 中使用。这应该让你开始 :: developer.mozilla.org/en/extensions 其实我不想创建扩展程序,我想创建一个 html 页面,当我单击一个按钮时,它会为我提供所有当前打开的选项卡的 url 列表。 那么,至少在目前的网络中没有解决方案。【参考方案3】:

您不能,此信息无法通过任何标准界面获得(除了您已经引用的窗口)。你可以看到为什么。您不希望您的某个标签的网站所有者能够知道您所有其他标签的显示内容,这将大量侵犯您的隐私。

对于您已经引用的窗口,您可以获得该窗口显示的任何内容的 URL (window.location.href),可能还有其父窗口的 URL (window.parent.location.href),*** (window.top.location.href) ,和从属框架(window.frames[n].location.href——我认为)。但这不会让你得到你要求的标签。

此信息可能通过各种浏览器的扩展机制(Firefox 插件、Chrome 扩展等)获得,但这仅适用于需要用户显式安装的浏览器扩展,并且(目前) 需要为每个浏览器供应商编写一个,并非所有供应商都提供扩展机制。

另外:此信息肯定不会发送到服务器端(您标记了您的问题php)。

【讨论】:

+1 此外,@Tariq 你能想象一个网站是否能够看到你打开或访问过的其他网站吗?您对此有何感想? @Matt 实际上有一些错误允许任何网站从浏览历史中猜测页面。这是基于这样一个事实,即被访问的链接可以使用不同的颜色,并且 JS 可以读取结果样式(因此您可以一个一个地猜测 URL,在某处输入它们并检查它们的颜色以查看它们是否被访问)。但似乎这已在现代浏览器 AFAIK 中得到修复。 @Matt 更新我最近的评论:Opera 似乎仍然容易受到这种“攻击”:jsfiddle.net/ePVas/1(由于之前访问过的链接,Opera 中的 JS 能够确定不同的颜色) @Tadeck:非常很有趣。当然,您必须知道要查找哪些 URL,但这仍然是一个漏洞,并且在正确(错误)的站点上,这是一个非常真实的恶作剧机会。哇。令人震惊的是,这是在当前的 Opera 中。 @T.J.克劳德:我也很惊讶。这里的问题是攻击者可以无限次尝试“检查”任意数量的 URI,甚至不必显示它们 (jsfiddle.net/ePVas/2)。即使最近安装了更新(Opera 11.50),它仍然存在......是的,非常令人震惊,但我认为更大的威胁是旧的 IE 版本仍然具有重要的市场份额。

以上是关于如何使用 php 或 javascript 获取所有浏览器中当前打开的选项卡的 url?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 php 通过谷歌地图获取步行或驾车距离

如何使用 JavaScript / PHP 从图像中获取地理位置数据?

如何在 JavaScript(或 PHP)中获取数组的中位数和四分位数/百分位数?

使用 javascript 或 php 从图像中获取所有 HEX 值

在 PHP 或 JavaScript 中获取用户的纬度和经度以便在 PHP 中使用

如何使用 javascript 或 JQuery 从不可见的 iframe 中获取隐藏字段值