仅当窗口未打开时才Window.open

2023-11-27

我的网站上有一个链接,可以打开一个新窗口,转到播放很长音频文件的页面。我当前的脚本可以正常打开页面,并且如果多次单击链接则不会刷新。但是,当我移至网站上的单独页面并再次单击此链接时,它会重新加载。我知道当父元素更改时,我将丢失变量,因此我需要打开窗口,覆盖现有内容。我正在尝试围绕这个问题找到解决方案。我不想使用 cookie 来实现此目的,但如果需要的话我会这样做。

我的脚本如下:

function OpenWindow(){
    if(typeof(winRef) == 'undefined' || winRef.closed){
    //create new
    winRef = window.open('http://samplesite/page','winPop','sampleListOfOptions');
    } else {
    //give it focus (in case it got burried)
     winRef.focus();
    } 
}

你应该先打电话winRef = window.open("", "winPopup")没有 URL - 这将返回一个窗口(如果存在),而无需重新加载。并且只有当winRef is null或空窗口,然后创建新窗口。

这是我的测试代码:

var winRef;

function OpenWindow()
{
  if(typeof(winRef) == 'undefined' || winRef.closed)
  {
    //create new
    var url = 'http://someurl';
    winRef = window.open('', 'winPop', 'sampleListOfOptions');
    if(winRef == null || winRef.document.location.href != url)
    {
      winRef = window.open(url, 'winPop');
    }
  }
  else
  {
    //give it focus (in case it got burried)
    winRef.focus();
  } 
}

有用。

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

仅当窗口未打开时才Window.open 的相关文章

随机推荐

  • 配置后无法创建变体“android-lint”

    我正在将项目的 Gradle 插件从 2 1 2 更新到 3 1 0 但是 gradle 在构建时开始抛出错误 配置后无法创建变体 android lint app debugRuntimeElements 已解决 项目级别等级 Top l
  • 如何检查有多少个 Google Cloud Run 容器实例正在运行?

    Google Cloud Run 让我可以设置并发性对于给定的容器 这是在新容器启动之前它将服务的并发请求数 我如何实际检查在任何给定时间有多少容器正在运行 Web 界面提到了哪些服务正在运行 但没有提到有多少服务 当我这样做时也是如此gc
  • 在单个活动中使用多个片段

    我想使用开发一个Android应用程序Honey Comb 3 0我想在其中显示一个列表 单击列表中的任何项目应该以片段的形式在该列表项目旁边显示另一个列表 任何人都可以提供示例代码来解决这个问题吗 提前致谢 看看 Google 的 Ret
  • iOS 11 - 核心数据 - UIColor 不再用作可转换属性

    我使用可转换属性将颜色存储在二进制核心数据存储中 并将属性的类指定为 UIColor 如下所示 import CoreDataEntity CoreDataClass h import
  • KoinAppAlreadyStartedException:Koin 应用程序已启动

    使用 koin 2 0 1 进行 Android 测试 尽管每个测试单独通过 但无法一起测试所有 3 个测试 class NumberFormatterUtilImplTest KoinTest private val numberForm
  • 如何向 iOS WebApp (PWA) 发送推送通知?

    我有 WordPress 网站并基于 WordPress 创建自己的 PWA 现在我想在我的网络应用程序上使用推送通知 如何向我的 ios 用户发送推送通知 在android pwa中已解决 不幸的是 推送通知在 IOS 上尚不可用 目前
  • 为什么这个生成器表达式函数比循环版本慢?

    我一直根据生成器表达式往往比普通循环更有效的理论进行操作 但后来我遇到了以下示例 编写一个给出数字的函数 N 以及一些因素 ps 返回下面所有数字的总和N是至少一个因数的倍数 这是循环版本和较短的生成器表达式版本 def loops N p
  • 可以转换的 CSS 属性列表

    我正在研究 CSS 转换 特别是可以转换哪些 CSS 属性以及它们各自的浏览器支持 努力在谷歌上找到任何全面的东西 我相信并非所有 CSS 属性都是过渡性的 例如 background 不是 但是background color and b
  • 多种输出格式的设计模式

    我有一个类结构 它 在内部 表示我希望输出到文件的数据 一些成员变量对于数据类来说是私有的 这样它就可以进行自我管理并阻止出现问题 然后我希望将这些数据输出为多种文件格式 我可以做类似的事情 savefile formatA DataCla
  • 请求“OPTIONS /logout”与“POST /logout”不匹配

    我正在通过分解来研究Spring Cloud和Spring OAuth2此 GitHub 示例中的三个互连应用程序 当我打开 oauth revoke token端点在authserver app然后从ui app with a http
  • 在 Haskell 中添加列表的惯用方法是什么?

    假设我想在 Haskell 中添加两个列表 最常用的方法是什么 这就是我所做的 addLists Integral a gt a gt a gt a addLists xs ys map add zip xs ys where add x
  • 如何CSS:根据内部HTML选择元素[重复]

    这个问题在这里已经有答案了 a href example1 com innerHTML1 a a href example2 com innerHTML2 a a href example3 com innerHTML3 a 我想基于内部
  • Python 比较运算符优先级

    Python中的所有比较操作都具有相同的优先级 低于任何算术 移位或按位操作的优先级 因此 和 True 与第二个表达式不同 gt gt gt 1 lt 0 False True gt gt gt 1 lt 0 False False 我希
  • 飞行路线信息屏幕状态是未来,而不是缺失

    由于一些公司特定的功能 我需要换入和换出 有时当我稍后运行 info 或 migrate 时 我会迁移一些不存在于 sql 目录中的脚本 不过 我刚刚注意到它的显示方式存在不一致之处 Version Description Installe
  • Android:ViewGroup,如何拦截MotionEvent然后分派到目标或按需吃掉它?

    假设有一个具有多个子项的 ViewGroup 至于这个 ViewGroup 我想让它管理其所有子项的所有 MotionEvent 这表示 VG 将1 能够在将所有事件分派到目标 子级 之前拦截所有事件2 VG首先会消费该事件 并判断是否进一
  • GCC makefile依赖生成路径

    我用 MMGCC 中用于生成对象的 makefile 依赖项的标志 makefile 简要如下所示 include autodep TARGET build OBJECTS CC shared o OBJECTS CC MM SOURCES
  • 如何从多个源文件创建 MSBuild 内联任务

    我有几个 CS 文件 一个 DLL 项目 全部位于一个目录中 其中的类之一扩展了 ITask 现在 如何从一个源文件创建内联任务很容易并有记录 但是是否可以从多个源文件执行此操作 我无法将编译和使用 DLL 作为一项任务 并且我希望不必将所
  • BigNums 实施如何工作?

    我想知道 BigInt 和其他类似的东西是如何实现的 我试图查看 JAVA 源代码 但对我来说全是希腊语和拉丁语 您能否用文字向我解释一下该算法 没有代码 以便我了解当我使用 JAVA API 中的某些内容时我实际使用的是什么 问候 从概念
  • 如何创建自定义 jquery 轮播?

    您好 我想为我的 php Web 应用程序创建一个简单的 jquery 轮播 我正在使用 php5 和 mysql 我怎样才能让任何人都能帮助我 尝试这个教程 http jqueryfordesigners com jquery infin
  • 仅当窗口未打开时才Window.open

    我的网站上有一个链接 可以打开一个新窗口 转到播放很长音频文件的页面 我当前的脚本可以正常打开页面 并且如果多次单击链接则不会刷新 但是 当我移至网站上的单独页面并再次单击此链接时 它会重新加载 我知道当父元素更改时 我将丢失变量 因此我需