如何检查另一个窗口中是否有打开的 URL?

2023-11-26

这是我上一个问题的后续如果窗口尚不存在,则打开一个窗口本质上,我现在保留一个页面已打开的所有窗口引用的列表,并且仅允许它们尚未打开时打开。然后一个潜在的问题引起了我的注意——用户当然有可能关闭原始窗口,然后再次打开它,从而丢失窗口引用列表。

是否可以循环浏览器中打开的窗口,检查特定的 URL?

编辑: 在此处(以及其他问题)进行了大量有用的评论之后,这里是应用程序启动器的最终代码。本质上,它尝试获取具有适当名称的打开窗口的位置。如果这导致异常(由于隐私问题),则判断应用程序已加载。如果是“about:blank”,那么它是一个新窗口。这适用于 Firefox、IE7 和 Google Chrome。感觉很脏...

var g_urlarray = [];

Array.prototype.has = function(value) {
    var i;
    for (var i in this) {
        if (i === value) {
            return true;
        }
    }
    return false;
};


function launchApplication(l_url, l_windowName)
{
    var l_width = screen.availWidth;
    var l_height = screen.availHeight;
    var winRef;

    var l_params = 'status=1' +
        ',resizable=1' +
        ',scrollbars=1' +
        ',width=' + l_width +
        ',height=' + l_height +
        ',left=0' +
        ',top=0';
    if (g_urlarray.has(l_url)) {
        winRef = g_urlarray[l_url];
    }
    if (winRef == null || winRef.closed) {
        winRef = window.open('', l_windowName, l_params);
        var l_openNew = 0;
        try {
            if (winRef.location == 'about:blank') {
                l_openNew = 1;
            }
        }
        catch (e) {
            l_openNew = 0;
        }
        if (l_openNew === 1)
        {
            winRef.location = l_url;
            winRef.moveTo(0,0);
            winRef.resizeTo(l_width, l_height);
        }
        g_urlarray[l_url] = winRef;
    }
}

不,这将是一个安全/隐私问题。


由于其他人提出了所有权/cookie 状态存储:只有当您也是打开窗口的同一文档时,这才有效,即在用户关闭窗口并重新打开的情况下,这些引用确实会丢失(即使您存储了它们,您将无权再关闭它们)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何检查另一个窗口中是否有打开的 URL? 的相关文章

  • 在 Node.js 中生成带条形码的 pdf

    我在用https github com devongovett pdfkit https github com devongovett pdfkit生成 PDF 文件 我可以简单地使用类似的方法 app get get pdf req re
  • 在节点环境中存根 jQuery.ajax (jQuery 2.x)

    我正在尝试运行一些需要存根的测试jQuery ajax 我正在使用 SinonJS 来做到这一点 它曾经与旧版本的 jQuery 1 x 一起工作得很好 var require jquery var sinon require sinon
  • Javascript 对象属性名称

    在 C 中 可以将对象属性的名称作为字符串值获取 名称 对象 Property gt myProperty 这可以在 Javascript Typescript 中完成吗 Object Keys 是我找到的唯一东西 但它给了我所有的键 示例
  • 有没有一种方法可以在没有输入的情况下发送表单值

    假设我有以下表格
  • 判断字符串是否包含有效的javascript代码

    我正在寻找一个C 返回的函数true如果字符串包含有效的 JavaScript 语法 例如 IsValidJavascript alert hello 会回来true but IsValidJavascript alertXXhelloZ
  • 更新存储在 chrome 扩展本地存储中的对象

    我正在开发一个 chrome 扩展 我将存储服务器发送的对象 例如 我将收到 命令 id 1 类型 A 大小 B 优先级 C 如果我有一个数据库 我会将其作为表中的一行插入commands 使用 chrome storage 我将这些对象的
  • Javascript 作为对象键的函数与块中标记函数之间的语法冲突

    假设您有一个支持两者的浏览器带标签的函数声明 https developer mozilla org en US docs Web JavaScript Reference Statements label Labeled function
  • onClick 处理程序在每个渲染周期触发

    我有这样的默认状态 this state selectedTab tab1 then 我的渲染方法是这样的 render const selectedTab this state return li tab1 li li tab2 li d
  • 无法在 Powershell 中运行 R.exe

    我经常发现在命令行 Windows 上运行 R 更有用 然而 当我在 Powershell 中尝试时 我往往会遇到问题 但这可以通过第一次运行轻松克服cmd然后就可以了 这是我执行此操作时遇到的错误R CMD BATCH Invoke Hi
  • C++/Windows:如何报告内存不足异常(bad_alloc)?

    我目前正在为 Windows MSVC 9 0 应用程序开发基于异常的错误报告系统 即异常结构和类型 继承 调用堆栈 错误报告和日志记录等 我现在的问题是 如何正确报告和记录内存不足错误 当发生此错误时 例如作为bad alloc抛出的ne
  • .points 不透明度/大小在三个.js 内

    我回来回答有关 points 的第二个问题 这次想知道如何将不透明度从 0 更改为 1 然后又回到距发射器的特定像素距离内 var particleCount 14 particles new THREE Geometry pMateria
  • 使用 float:left 与 display:inline-block 的 jQuery UI 拖放排序比较

    我这里有两个例子 这两个例子之间的唯一区别是 一种使用display inline block 另一种使用float left li doc item 显示 内联块 与 li doc item float left 我的问题是 displa
  • 可以禁用幻灯片的触摸模拟但不能禁用滚动条(危险的滑动器)吗?

    我的页面上有一个危险的滑动器 它成功地模拟了幻灯片和随附滚动条上的触摸事件 允许单击鼠标并移动以向左或向右滑动幻灯片 这很好 但我现在在滑动器内的幻灯片上调用了可拖动 这意味着我需要停止此触摸模拟 拖动幻灯片并同时移动它们会引起混乱 但仅限
  • Angular2:动态同步http请求

    Goal 发出一系列同步 http 请求并能够将它们作为一个可观察流进行订阅 示例 不工作 let query arr test1 test2 test3 function make request query arr if query a
  • 如何在React中动态分配属性?

    这是一个有两个参数的函数 我要创建的标签的名称 具有以下属性的对象 Using React 我创建一个组件并将该元素渲染到 DOM 问题是我想向元素添加属性 但它不允许循环在元素内设置属性 var Element function elem
  • 如何将MathJax公式转换为img

    Mathjax 现在在我的项目中运行良好 但有一个问题 有没有办法将MathJax的公式 纯html和css 转换成img文件 我可以保存 MathJax 可以配置为生成 SVG 看http docs mathjax org en late
  • React Redux - 在辅助函数中访问现有存储

    我试图在反应组件之外获取存储实例 存储状态 即在单独的辅助函数中 我有我的减速器 我的动作 我在最上面的组件中创建了一个商店 configStore js import createStore from redux import gener
  • 如何在 TypeScript 中使用 navigation.replace ?

    我试图在我的代码中使用它 const navigation useNavigation navigation replace AllFriends 但我不断收到错误消息 Property replace does not exist on
  • 为什么 JavaScript 中是 [1,2] + [3,4] = "1,23,4" ?

    我想将一个数组的元素添加到另一个数组中 所以我尝试了以下方法 1 2 3 4 它的回应是 1 23 4 到底是怎么回事 The 操作员没有为数组定义 发生的事情是 JavaScript将数组转换为字符串并将它们连接起来 Update 由于这
  • 将引导程序弹出框保留在视口内

    我正在尝试使用带有按钮的侧边栏创建一个菜单 每个按钮都有一个指定的包含相关数据的弹出窗口 不幸的是 其中一个弹出窗口可能包含任意数量的行 并且在某些情况下它可能部分位于视口之外 See http jsfiddle net bfd9f 1 h

随机推荐

  • Facebook Web 应用程序扩展权限第二步不显示

    Update2这篇文章已经过时了 但仍然相关 下面是我解决这个问题的方法 我标记了其他人的答案 因为我认为它更好地回答了问题 我正在 accountcontroller 中调用类似的方法 我即将重构 该字符串应该是一个列表 我想你明白了
  • 如何在Spring LDAP中添加LDAP缓存?

    我想在本地缓存 LDAP 用户数据以允许更快的查询 Spring LDAP 提供这样的功能吗 我怎样才能做到这一点 我使用 Spring Security 3 1 和 Spring LDAP 1 3 1 进行身份验证和授权 如果存在使用内置
  • 无法在同一文件中使用模块和主程序进行编译

    我正在尝试使用与主程序位于同一文件中的模块 但是 我无法让它工作 Fortran 是否允许模块与主程序包含在同一文件中 还是必须位于单独的文件中 这是我的代码的简单版本 main program use my module call my
  • ggplot2:如何在单个图中组合直方图、地毯图和逻辑回归预测

    我正在尝试绘制逻辑回归的组合图作为函数逻辑直方图但我想用ggplot2 审美原因 问题是只有一个直方图应该具有scale y reverse 有什么方法可以在单个图中指定这一点 请参见下面的代码 或者通过使用可以传递到前一个图的坐标来重叠两
  • 如何使用 Python 在 OpenCV 中裁剪图像

    如何使用 OpenCV 裁剪图像 就像我之前在 PIL 中所做的那样 PIL 上的工作示例 im Image open 0 png convert L im im crop 1 1 98 33 im save 0 png 但是我如何在 Op
  • 获取java类的编译时间戳

    是否可以可靠地确定本地运行的 Java 应用程序以及作为小程序和 或 JNLP Web 应用程序运行的给定类的编译时间戳 根据 Java 虚拟机规范 类文件格式不需要任何类型的时间戳 因此您最好检查包含该类的 Class 或 Jar 文件的
  • 如何修剪前导和尾随空白?

    我在处理 data frame 中的前导和尾随空格时遇到一些问题 例如 我查看一个特定的row in a data frame基于某种条件 gt myDummy myDummy country c Austria c 1 2 3 7 19
  • 使用 xUnit 处理 netstandard1.6

    我希望使用 netstandard1 6 库的测试框架 我尝试关注并编辑xUnit net 入门 NET Core ASP NET Core 没有成功 按照 xUnit 的教程 使用 VS 2015 Update 3 RTM 上的 dotn
  • 使用spel访问spring注释中的静态变量

    我在注释中有一个值 我想为其分配一个静态变量 我尝试过这样的事情 Cacheable value com test App VALUE public List someCachableMethod 尝试此操作后 仍然出现相同的异常 找不到字
  • Android Facebook 意图

    我正在使用此代码在 Facebook 上发布 但它不适用于官方 Facebook 应用程序 因为它尝试作为链接发送 有没有办法解决 Intent s new Intent android content Intent ACTION SEND
  • Android:添加一个简单的片段

    我对 Android 应用程序还很陌生 所以我希望能在这里找到一些帮助 我已经在这里搜索了我的问题并找到了一些东西 但这不起作用 我想将 Fragment 添加到 FrameLayout 但它不起作用 我的目标是创建一个始终存在的框架 框架
  • 在 ggplot x 轴上显示所有日期值 - R

    在下面的小数据集中 我想在 x 轴上绘制日期值 我希望标记数据框中存在的所有日期刻度 目前它只标记 3 个随机刻度 我可以将该列更改为一个因子 但将其作为日期意味着 x 轴根据点之间的时间间隔进行间隔 到目前为止 我能找到的唯一答案是想要每
  • Python正则表达式匹配字符串末尾的标点符号

    我需要在Python中匹配一个句子是否以大写开头并以 结尾 EDIT它必须有 only at end 但允许在句子中使用其他标点符号 import re s This sentence is correct This sentence is
  • python 有 soundex 函数吗?

    python 是否有 soundex 函数 如果没有 你将如何编写 soundex 代码 Soundex Code Letters 1 B F P V 2 C G J K Q S X Z 3 D T 4 L 5 M N 6 R SKIP A
  • Objective C - 静态和全局变量?

    在名为 Ad 的类的 m 文件中 我有 3 个静态字符串 static NSString AdStateDisabled disable static NSString AdStateExpired expired static NSStr
  • 构建oozie:未知主机repository.codehaus.org

    我正在尝试构建从此处下载的 Oozie 4 2 0 http ftp cixug es apache oozie 4 2 0 oozie 4 2 0 tar gz 启动构建后 bin mkdistro sh DskipTests 我收到此错
  • 适用于作业服务器的 Amazon Auto Scaling API

    我已经阅读了几乎整个文档 甚至超出了 AWS AS API 的范围 以了解所有 AS 内容 然而 我仍然想知道 尚未实际使用 API 因为我想先从某人那里找到这一点 我的场景是否适用于 AS 假设我在一个 AS 组内设置了一堆工作服务器 每
  • 如何抑制 Python 日志记录模块中的换行符。 [复制]

    这个问题在这里已经有答案了 我想在执行 log info msg 操作时取消换行符 当我们 打印 它时 print msg 所以我需要像 coma 这样的东西来记录 我播下这个问题在 Python 日志记录模块中禁止换行但有人可以给我参考或
  • 使用 React 从 Babel 迁移到 SWC

    TL DR 如何翻译这样的节点脚本 test NODE ENV test riteway r babel register src test js tap nirvana to use SWC而不是巴别塔 Context 我们最近升级了 N
  • 如何检查另一个窗口中是否有打开的 URL?

    这是我上一个问题的后续如果窗口尚不存在 则打开一个窗口本质上 我现在保留一个页面已打开的所有窗口引用的列表 并且仅允许它们尚未打开时打开 然后一个潜在的问题引起了我的注意 用户当然有可能关闭原始窗口 然后再次打开它 从而丢失窗口引用列表 是