如何将焦点设置到子窗口而不刷新它?

2023-12-13

我有一个包含四个链接的网页,每个链接都会打开一个弹出窗口。我正在使用常见的 JavaScript 函数来打开弹出窗口,如下所示

function OpenPopup(pageURL, title,w,h) {

    var left = (screen.width/2)-(w/2);

    var top = (screen.height/2)-(h/2);

    var targetWin = window.open (pageURL, title, 'toolbar=no, location=no, 
        directories=no, status=no, menubar=no, scrollbars=Yes, resizable=no, 
        copyhistory=no, width='+w+', height='+h+', top='+top+', left='+left);

    targetWin.focus();

}

当我单击链接时,它将打开一个弹出窗口,其中包含一个数据输入表单,我在该表单中输入了一些信息。然后我需要从其他弹出窗口查看其他信息,所以我返回主窗口,单击另一个链接,将打开一个新的弹出窗口,其中包含我需要查看的信息。我获取信息并关闭此弹出窗口,所以现在我在主窗口上,然后再次单击该数据输入表单的链接,因此弹出窗口出现,但我丢失了我输入的信息,这是因为我再次打开弹出窗口,新的弹出窗口将替换现有的同名弹出窗口。

现在我的问题是:

  1. 他们有什么办法吗,我可以检查弹出窗口是否已经从父窗口打开?

  2. 如果弹出窗口已经打开,我怎样才能将焦点设置到它,而不是重新加载它?

  3. 如何从父窗口引用子窗口,而无需仅通过子窗口的名称来获取子窗口的对象?

  4. 即使刷新父窗口后,我是否可以从父窗口引用子窗口?


对于 1 和 2 ,您可以使用此功能

// loads an URL into the popup without reloading it
function popupnr(mylink, windowname, refocus) {
    // open the window with blank url
    var mywin = window.open('', windowname, 'window attrs here');

    // if we just opened the window
    if (mywin.closed || (!mywin.document.URL) || (mywin.document.URL.indexOf("about") == 0)) {
        mywin.location = mylink;
    }
    else if (refocus) {
        mywin.focus();
    }

    // return the window
    return mywin;
}
  1. 您不能通过名称引用子窗口。没有window.children。你需要打电话window.open以获得参考。

  2. 是的你可以。但调用时需要使用相同的窗口名称window.open

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

如何将焦点设置到子窗口而不刷新它? 的相关文章

  • 使用material-ui@next 和 typescript 扩展主题

    创建我的主题时material ui我添加了两个新的调色板选项 为我提供了更好的明暗范围 我已经延长了Theme键入以表明这一点 import Theme from material ui styles import Palette fro
  • 在带有融合图表的饼图中显示图例

    我想在饼图中显示图例及其值 我用谷歌搜索了很多 但没有得到任何解决方案 此外 融合图表中没有选项可以直接实现这一点 谁能建议我可以应用什么技巧来做到这一点 我想我需要修改库中的很多我不想要的东西 所以请帮助我 Refer below ima
  • 通过单击堆叠条形图打开选项卡

    我正在使用 R 构建一个包含转发的堆积条形图 ggplot and plotly 如果单击条形图的一部分 我希望打开一个新的浏览器选项卡并显示该特定日期的推文以及指定的转发量 但是 当我单击下面示例中的其中一个栏时 会打开一个不同的链接 表
  • 粘性页脚不粘在 AngularJS 中

    Im working an angular site and im trying to implement a sticky footer across all views but the footer stops sticking whe
  • d3 树 - 有相同孩子的父母

    我一直在将代码从 JIT 转换为 D3 并使用树布局 我已经复制了代码http mbostock github com d3 talk 20111018 tree html http mbostock github com d3 talk
  • 如何在D3节点中放置图像?

    到目前为止 我已经创建了这些 D3 节点 用于创建可折叠的层次树 到目前为止 这些节点的颜色为 AA1C1C 深红色 以表明如果您单击它们 它们将扩展到更多节点 我想要做的是在节点中使用图像中的位置 这对于所有用户来说都是一个加号 以知道它
  • 仅当 url 以 www 为前缀时才会发生 CORS 错误

    我目前遇到一个关于 CORS 跨源资源共享 的问题 奇怪的是 只有当我使用 www url 前缀时 才会出现这种情况 例如 当我使用以下网址访问我的网站时 http example com index http example com in
  • 按住鼠标时 JavaScript 重复动作

    是否有一个 JavaScript 函数每隔如此多的毫秒重复一次 以至于按住 html 按钮 如果这可以使用标准 JavaScript 来完成 那就太好了 但使用 jQuery 或 jQuery 插件也很棒 On the mousedown
  • 在 Cytoscape.js 中为家谱设置边缘样式

    我有一个使用 Django 的家谱应用程序 我正在尝试使用http js cytoscape org http js cytoscape org对于用户界面 我想设置之间的边缘样式浪漫的伴侣像这样 http www eprintableca
  • 如何按日期升序对对象进行排序?

    如果我有一个对象列表 var objectList LIST OF OBJECT each object列表中包含三个属性 name date gender 如何按 对列表中的对象进行排序date 属性升序 the date 属性包含字符串
  • 如何检查字符串中是否存在阿拉伯字符(javascript)

    如何用javascript语言检查字符串中是否存在阿拉伯字符 根据维基百科 http en wikipedia org wiki Basic Multilingual Plane 阿拉伯字符属于 Unicode 范围 0600 06FF 因
  • 如何在 d3.js 中填充 svg 圆圈内的图像

    这是我在 svg 中填充圆圈的代码 var svgContainer d3 select body append svg attr width 1000 attr height 1000 var circles svgContainer s
  • jQuery 删除函数真的删除 Dom 元素吗?

    我真的想知道 jQuery 是否remove http api jquery com remove 函数确实从 DOM 中删除元素 首先 我看了here https stackoverflow com questions 2185760 j
  • 需要将焦点放在react中的div上

    我有一个之前用 H1 标签包裹的文本 页面加载后 我需要专注于该文本 为了方便起见 我将它包装在 div 中 render const translate billing primaryContactSelection true this
  • 输入号码时自动格式化 SSN

    我有一个文本字段 用户输入 SSN 号码 输入自身时 它应该格式化 就像关于文本字段的更改 它应该格式化999 999 999以这种方式在显示器本身上 kottenator 的脚本几乎已经完成 但它每隔 3 位数字就中断该值 而不是 3 位
  • 在成功回调之前修改 JSONP 结果

    我想从外部服务加载一些 JSON 数据 然而 它提供 foo bar useful 而我真正关心的是 有用 的部分 我需要将那部分传递给success打回来 我正在尝试使用Deferred一次从多个数据源加载 类似this https st
  • 如何使 CSS 动画/过渡以固定速度而不是固定持续时间播放? [复制]

    这个问题在这里已经有答案了 我有一个 CSS 动画 可以使元素沿直线移动未定义的距离 据我所知 动画具有固定的持续时间 因此无论元素必须移动多远 动画始终需要相同的时间来运行 我该如何制作才能使动画没有固定的duration 但有固定的运动
  • 如何创建浏览器插件?

    我必须创建一个插件 当用户将鼠标悬停在某些术语上时 该插件必须显示信息 谁能告诉我如何做的方向 我对创建插件没有太多想法 我知道我想要做的事情可以通过java脚本来完成 但是java脚本文件可以作为浏览器插件安装吗 任何对此的想法将不胜感激
  • javascript初学者:在javascript中添加动态样式? [复制]

    这个问题在这里已经有答案了 可能的重复 如何使用 Javascript 创建 标签 https stackoverflow com questions 524696 how to create a style tag with javasc
  • 获取css规则、chrome扩展

    我正在开发 Chrome 扩展程序 它需要访问document styleSheets cssRules 它在某些网站上运行良好 例如w3school 但其他人则不然 比如堆栈溢出 我收到错误 Failed to read the cssR

随机推荐