是否可以在 JavaScript 中确定命名窗口是否打开?

2024-03-01

我正在开发一个站点间单点登录项目,并且遇到了一个相当小的问题。当用户注销“父”站点时,需要在包含“子”站点的弹出窗口中加载特定页面。但是,我无法存储对返回值的引用window.open(…),因为必须允许用户在注销之前在每个站点上导航到他们喜欢的任何位置。

如果我可以假设子站点始终打开,就像另一个window.open(…)到同一个命名的窗口将更改其 URL。然而,弹出窗口cannot如果尚未打开(并非所有用户都有权访问子站点),则会导致出现。

我认为这给了我两个相互矛盾的场景。当用户访问子站点时:

  1. 用户登录到父站点。
  2. 用户单击子站点的链接
  3. 子站点出现在名为“child_popup”的窗口中。
  4. 用户在父站点中广泛浏览,忘记了子窗口的存在。
  5. 用户从父站点注销。
  6. 子弹出窗口被重定向到子站点的注销页面。

当用户没有或无法访问子站点时:

  1. 用户登录到父站点。
  2. 用户在父站点中广泛浏览。
  3. 用户从父站点注销。
  4. 不应出现任何弹出窗口!

所以我的局限性是:

  • 我无法在 JS 中存储对窗口的引用,因为用户可以在访问子站点和注销之间导航到任意数量的页面。
  • I have zero控制子网站的内容(我的雇主运营父网站)。
  • 父站点无法转换为框架以提供“全局”JS 范围。 :-)

我无法在 Google 或 SO 上找到任何相关资源。有办法做到这一点吗?


是的,您可以,但须遵守一项重要限制。

它取决于以下行为:

  1. window.open 的前 2 个参数是 URL 和窗口名称
  2. window.open 返回对窗口的引用
  3. 如果已使用指定名称打开窗口,则返回对该窗口的引用而不是对新窗口的引用
  4. 如果 URL 为 NULL,现有窗口将不会导航到新页面

这意味着您可以获得对现有窗口的引用,而不会丢失窗口已打开的页面。然而,如果一个窗口doesn't以这个名字存在will被打开。

我们在以下位置使用了这种方法http://carbonlogic.co.uk/ http://carbonlogic.co.uk/但由于 Flash Player 问题,弹出窗口的内容目前无法正常工作

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

是否可以在 JavaScript 中确定命名窗口是否打开? 的相关文章

  • 获取画布上下文的最后一个点的坐标

    我想创建一个arrowTo功能与CanvasRenderingContext2D prototype 为此 我需要获取最后一个点的坐标 例如 var ctx someCanvas getContext 2d ctx moveTo 10 40
  • 优化数据可视化 Web 应用程序的性能

    我正在重写 3 年前编写的数据可视化网络工具 从那时起 浏览器的 JavaScript 引擎变得更快 所以我正在考虑将部分工作从服务器转移到客户端 在页面上 数据在表格和地图 或图表 中可视化 它使用相同的数据 但以不同的方式 因此准备显示
  • 在 HTML5 中使用 JS 创建内联 SVG

    我正在使用本地 HTML5 文件 它有在顶部 我在里面放了这样的东西
  • 是否可以将自定义 HTML 添加到传单图层组和图层控件

    有什么方法可以将自定义 HTML 注入图层组和图层控件中吗 在我们的应用程序中 我们实现了滑块 输入 范围 来调整不透明度设置 并且很明显 在其控制容器内部的基础层上使用专用滑块是有意义的 没有选项或参数可以修改此控件 理想情况下 我们希望
  • Visual Studio IDE 中功能后的空间

    如何设置 Visual Studio 中的设计以在我的 javascript 函数后面放置一个空格 目前 当我按下返回键时 我得到了这个 var myfunc function 当我想要这个的时候 var myfunc function 知
  • Twitter Bootstrap 轮播在加载时自动播放

    使用twitter bootstrap框架 如何调用轮播来 自动滑动 这意味着当页面加载时 轮播会自动滚动 我尝试过 javascript onLoad click 函数 a 下一个链接的 但这不起作用 你应该这样做Twitter Boot
  • getElementsByClassName & IE8:对象不支持此属性或方法[重复]

    这个问题在这里已经有答案了 I know getElementsByClassName 不支持IE8 你知道我可以用什么来代替吗 我因错误而变得烦人 对象不支持此属性或方法 HTML 代码是 function sumar var elems
  • Vue Draggable - 如何仅替换所选项目以防止移动网格上的所有其他项目?

    这是一个要测试的示例 https codesandbox io s j4vn761455 file src App vue 112 116 https codesandbox io s j4vn761455 file src App vue
  • 如何在 javascript 或 jquery 中按尺寸对图像进行排序

    如何在 JavaScript 或 jQuery 中按尺寸对图像进行排序 我的代码如下 var imgsrc if document images length lt 1 alert No images to open return for
  • JavaScript 原型 - 请澄清

    有人可以帮我理解原型属性吗 我不明白原型属性是函数的属性还是函数内部的属性 假设我们创建以下构造函数 Food 此时 函数 Food 具有 Food prototype 属性 由于 Food 是 Object 的实例 因此这意味着 Obec
  • 数据表“footerCallback”函数未在页脚中显示结果

    我尝试获取每列的总和并将结果显示在页脚中 我在用着 页脚回调 https datatables net reference option footerCallbackDatatables提供的功能 但是它在页脚中没有显示任何内容 数据表解释
  • selenium-webdriver 与 webdriverjs 有什么区别(以及何时使用)?

    我是一位使用 selenium webdriver 的经验丰富的专业人士 我正在探索有关如何测试 javascript 应用程序的更多选项 我发现了 webdriverJs 不幸的是 我不明白这两者 2 之间有什么区别 有人可以解释一下何时
  • 如何上传文件 - sails.js

    我可以下载图像和 pdf 但无法下载文档文件 doc pptx odt 下载文档 doc pptx odt 时 仅将其下载为 ZIP XML 文件 我可以做什么 我在用着 填写上传文件文档 https github com balderda
  • D3.js - 具有多个环的圆环图

    以下示例显示了 D3 js 中的圆环图 是否可以向图表添加多个圆环 var dataset apples 53245 28479 19697 24037 40245 var width 460 height 300 radius Math
  • 使用 Socket.IO 时如何访问会话标识符?

    我有一个聊天 我需要管理独特的连接 我四处搜寻 但我找到的解决方案似乎都已被弃用 那么 如何使用 Socket IO 获取套接字的会话 ID 我在用着Node js http en wikipedia org wiki Node js Ex
  • 简单的颜色变化

    我正在创建一个用户界面 用户可以在其中更改页面的颜色值 我想要的是获取分配给其背景颜色的值并将其变亮一定程度 我只是想获得一条亮点线 而不必每次都制作新图像 示例 用户将背景颜色设置为 ECECEC 现在我希望某个元素边框变成 F4F4F4
  • 如何仅突出显示嵌套表的最里面的表行?

    我有几个嵌套表 我想突出显示鼠标指针下方的最里面的行 我怎样才能做到这一点 一些提示 我使用嵌套表来显示递归表格数据 表可以嵌套 10 层 嵌套正如您所期望的那样 table tr td table tr td table tr td 可能
  • 使用 QtWebEngine 将 C++ 对象暴露给 Qt 中的 Javascript

    使用 QtWebkit 可以通过以下方式将 C 对象公开给 JavascriptQWebFrame addToJavaScriptWindowObject如中所述https stackoverflow com a 20685002 5959
  • 将 Angular Web 组件 EventEmitter 监听到 javascript

    我在以下工具的帮助下创建了一个小型网络组件本文 https medium com IMM9O web components with angular d0205c9db08f使用角度元素 其中包括 Input and Output 我能够将
  • R闪亮:使用闪亮的JS从数据表中获取信息

    我想读出所有列名称以及它们在数据表中显示的顺序 由于不同的原因 我无法使用 stateSave 等选项 我对 JS 没有什么把握 但我确信用它可以完成 所以我需要你帮助我 我尝试过类似的代码片段 datatable data callbac

随机推荐

  • CORS 和错误以及 Access-Control-Allow-Origin 标头问题

    您好 我无法在我的项目中禁用 CORS 我使用自定义过滤器和 Spring Security Config 进行 CORS 配置 我看到了这个很棒的答案 可以在 Spring 中完全禁用 CORS 支持吗 https stackoverfl
  • Google Play 安全警报 - 您的应用正在使用 HostnameVerifier 的不安全实现

    最近 我的一个应用程序收到了来自 Google Play 的安全警报 如下所示 您的应用程序正在使用不安全的实现主机名验证器 https developer android com reference javax net ssl Hostn
  • RankNTypes:导致此错误的原因是什么?

    我刚刚探索了 Rank2Types 和 RankNTypes 试图熟悉它们 但我无法弄清楚为什么以下不起作用 g forall a forall b a gt b gt x gt y gt u v g p x y p x p y 这个定义被
  • 我应该在 Windows 7 中使用 Python 2.7 32 位还是 64 位

    我正在设置 Django 并试图决定在我的 Windows 7 计算机上使用 32 位还是 64 位版本的 Python 2 7 我已经看到了 64 位安装程序的问题 但真正的问题是所有必要的库是否都可用于 64 位 或者某个版本是否存在我
  • 在 Java 中使用 Actions 创建菜单、工具栏和其他组件的正确方法

    在 Java Swing 应用程序中编写构建菜单的简单方法是执行以下操作 JMenu fileMenu new JMenu File JMenuItem openItem new JMenuItem Open openItem addAct
  • 是否可以通过编程方式更改 Iphone 的默认搜索引擎?

    我们想要构建一个网页 请求 iPhone 用户更改其默认搜索提供商的权限 通过移动 Safari 可以实现这一点吗 iOS 上的 Mobile Safari 中的 Window 对象似乎具有三个未记录的函数 可以与默认搜索引擎进行交互 wi
  • 为 JerseyTest 配置带有 SSL 的 JettyTestContainer

    我的任务是为我的团队的代码设置集成测试 这些测试需要向 Jersey 2 27 中实现的 REST 端点执行 HTTPS 请求 在我寻找如何进行此类测试的过程中 我偶然发现这篇文章来自Baeldung https www baeldung
  • 登录失败。用户“NT AUTHORITY\NETWORK”登录失败

    我无法摆脱这个错误 我通过 SSMS 添加了 NT AUTHORITY NETWORK 用户 以及使用此线程作为参考的相关角色 用户 NT AUTHORITY NETWORK SERVICE 登录失败 https stackoverflow
  • jQuery 在顶部留出更多空间

    如何在图表顶部创造更多空间 Now i get this 但我想要这个 这是我的JS代码 table chart each function var colors table chart thead th not first each fu
  • 为什么选择 RelayCommand

    我最近在 WPF 中进行了大量编程 但此时我的 View 和 ViewModel 并未分开 嗯 这是部分的 我所有与文本框中的文本 标签内容 数据网格中的列表等相关的绑定都是由常规属性完成的 其中包含 NotifyPropertyChang
  • 矩阵计算错误

    我正在使用 R 工具来计算 SVD svd m 并且它适用于小矩阵 但当我通过它时20Kx20X矩阵 处理完后 报如下错误 Error in svd m infinite or missing values in x 我检查了一下 没有行或
  • 如果未提供字符编码,HTML5 是否会为 HTML 文档指定默认字符编码?

    通过 HTTP 检索的示例 HTML 文档缺少 a HTTP Content Type header a HTML a HTML 对于 HTML5 是否假定默认字符编码 例如 UTF 8 或者完全由应用程序读取 HTML 文档来选择默认值
  • 取消删除 Google 日历活动

    我有一个 C 应用程序 可以在谷歌日历中创建事件 出于其自身目的 它控制事件的 UID 有时想要删除并重新创建事件 当尝试重新创建与已删除事件具有相同 UID 的事件时 会收到 远程服务器返回错误 409 冲突 我可以通过将 showdel
  • TextView不显示所有文本

    在我的应用程序中 我无法在通知中看到我显示的所有文本 我输入了 n 但这对我没有帮助 我不明白为什么 这是proba xml
  • 使用 feeder 确保 Gadling 中的 CSV 记录

    我用 CSV 在加特林创建了一个简单的馈线 该脚本运行良好 没有出现任何错误 我知道在负载测试期间从 CSV 中获取值 但我怎样才能确保每个用户获得哪个价值 我必须确保第一个用户应使用用户名 user1 和密码 password1 登录 由
  • 如何使用后退按钮返回 CrossWalk 的 XWalkView,或禁用它?

    我第一次尝试时使用下面的代码返回到 webview 中 但由于渲染能力较低 我使用XWalkView代替WebView public boolean onKeyDown int keyCode KeyEvent event WebView
  • 从列表 python 创建字典

    我有很多这种格式的列表 1 O1 0 0000 0 0000 2 AP 35 0000 105 0000 3 EU 47 0000 8 0000 我需要创建一个字典 其中键作为列表中的第一个元素 值作为整个列表 没有一个键是重复的 最好的方
  • 如何使用 c# .net 删除前缀

  • Shibboleth 成功登录后自定义重定向

    我需要在 Shibbolethlogin 之后和重定向到 SP url 之前执行操作 对我来说 最好的解决方案是 Shib 页面登录 gt 登录正常 gt 重定向到我的自定义页面 gt 重定向到 sp url 如果可能的话我该怎么做 有可能
  • 是否可以在 JavaScript 中确定命名窗口是否打开?

    我正在开发一个站点间单点登录项目 并且遇到了一个相当小的问题 当用户注销 父 站点时 需要在包含 子 站点的弹出窗口中加载特定页面 但是 我无法存储对返回值的引用window open 因为必须允许用户在注销之前在每个站点上导航到他们喜欢的