如何识别当前打开的每个单独的浏览器窗口
How to identify every separate browser window that is currently open?
如何使用javascript唯一标识当前为所有主要浏览器打开的每个单独的浏览器窗口?让我解释一下我需要知道的内容,让我们考虑以下情况:
我有 3 个浏览器窗口 [任何现代浏览器,即 Chrome、Firefox 等]当前打开,每个窗口都包含多个选项卡。
- 窗口 #1:3 个选项卡 [选项卡 A、选项卡 B 和选项卡 C]
- 窗口 #2:2 个选项卡 [选项卡 D 和选项卡 E]
- 窗口 #3:4 个选项卡 [选项卡 F、选项卡 G、选项卡 H 和选项卡 I]
如何唯一标识每个浏览器窗口[即捕获每个浏览器窗口的唯一 ID/值,而不是选项卡的窗口]?所以,最后我将有 3 个 ID [所有窗口],而不是 9 个 ID [所有选项卡]。我能够通过创建使用 jQuery [crossrider] 的浏览器加载项或扩展来识别窗口中的所有选项卡,但找不到唯一标识每个窗口的方法。
JavaScript/JQuery可以做到这一点吗?如果是这样,如何?如果没有,为什么?
我在javascript中尝试了"window.name",但这给了我9个ID,而不是3个ID。
据我所知,这不能用当前的 Crosssrider API 来完成!
您必须切换回非跨浏览器插件实现,
以便您将为目标的每个浏览器实现单独的扩展。
例如,在Chrome扩展程序中,使用chrome.windows.getAll
功能
chrome.windows.getAll(object getInfo, function callback)
以获取可以计数和识别每个窗口的所有实例。例如:
chrome.windows.getAll({populate : true}, function (window_list) {
var count = window_list.length; // You now have their count
for(var i=0; i<count; i++) {
var myWindow = window_list[i];
// Do whatever you want here !
}
});
并且不要忘记清单中的选项卡权限!
{
...
"permissions": ["tabs"],
...
}
对于 Firefox 插件,请使用 nsIWindowMediator
类,调用其 getEnumerator
方法
var windowMediator = Components.classes["@mozilla.org/appshell/window-mediator;1"]
.getService(Components.interfaces.nsIWindowMediator);
var enumerator = windowMediator.getEnumerator(null); // returns an iterator of all windows
var count = 0;
while (enumerator.hasMoreElements()) {
var myWindow = enumerator.getNext();
count++;
// Do whatever you want here !
}
// You now have their count
对于Safari扩展,您可以使用safari.application.browserWindows
例如获取所有打开窗口的数组
var count = safari.application.browserWindows.length; // You now have their count
for(var i=0; i<count; i++) {
var myWindow = safari.application.browserWindows[i];
// Do whatever you want here !
}
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- Javascript排序的图像弹出窗口..可以't单独弹出
- Javascript单独的游戏窗口
- 如何在单独的窗口中打开CSV文件
- 如何识别当前打开的每个单独的浏览器窗口
- 将数据发送到单独的窗口javascript
- 如何仅从 DOM 窗口对象中获取属性?(不单独指定)
- 我正在尝试为一组地址设置不同的标记.我想要一个单独的信息窗口.我没有得到信息窗口
- 如何打开新的web浏览器,而不是在点击链接时弹出,该链接与父窗口有单独的http会话
- 使用intercom.js在单独的窗口上触发函数
- 如何让Electron在单独的进程中打开每个新窗口?
- 在单独的窗口命名空间中加载和访问Js的方法
- FB.登录弹出框不是居中,甚至在单独的屏幕上比活动的浏览器窗口
- 如何显示单独的锂元素滚动基于窗口的高度
- 如何在页面加载时在单独的全屏窗口中打开网页
- JSF commandButtons都打开单独的窗口,但只有一个应该打开
- 在不单独的预览窗口中代替文本渲染标记
- 如何在单独的窗口中打印html表格
- 如何在一个单独的窗口中加载所有href链接
- 在javascript中接收事件并在单独的窗口中打印