用javascript父窗口控制只弹出一个子窗口

yizhihongxing

要实现父窗口控制只弹出一个子窗口,需要满足以下几个步骤:

  1. 在父窗口中定义一个全局变量,用于保存打开的子窗口对象。

  2. 在打开子窗口的函数中,先判断全局变量是否为空。如果为空,说明没有打开过子窗口,那么创建新的子窗口对象并赋值给全局变量。如果不为空,说明已经存在子窗口,那么判断子窗口是否关闭,如果关闭,则再次创建新的子窗口对象并赋值给全局变量;如果没有关闭,则聚焦在已存在的子窗口上。

  3. 在子窗口关闭时,将全局变量的值置为空。

下面是两个示例说明:

  1. 在父窗口点击按钮弹出子窗口

父窗口代码:

<script>
var childWindow = null;

function openChildWindow(url) {
  if (childWindow && !childWindow.closed) {
    childWindow.focus();
  } else {
    childWindow = window.open(url, "childWindow");
  }
}

function closeChildWindow() {
  if (childWindow && !childWindow.closed) {
    childWindow.close();
    childWindow = null;
  }
}
</script>

<button onclick="openChildWindow('https://www.example.com')">打开子窗口</button>
<button onclick="closeChildWindow()">关闭子窗口</button>

子窗口代码:

<script>
window.onunload = function() {
  window.opener.childWindow = null;
}
</script>
  1. 在子窗口点击链接打开新的子窗口

父窗口代码:

<script>
var childWindow = null;

function openChildWindow(url) {
  if (childWindow && !childWindow.closed) {
    childWindow.focus();
  } else {
    childWindow = window.open(url, "childWindow");
  }
}

function closeChildWindow() {
  if (childWindow && !childWindow.closed) {
    childWindow.close();
    childWindow = null;
  }
}
</script>

<button onclick="openChildWindow('https://www.example.com')">打开子窗口</button>
<button onclick="closeChildWindow()">关闭子窗口</button>

子窗口代码:

<script>
window.onunload = function() {
  if (opener && opener.childWindow && !opener.childWindow.closed) {
    opener.childWindow.close();
  }
}
</script>

<a href="https://www.example.com" target="_blank" onclick="window.open(this.href, 'childWindow'); return false;">点击打开新的子窗口</a>

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:用javascript父窗口控制只弹出一个子窗口 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • 优化javascript的执行效率一些方法总结

    优化Javascript的执行效率一些方法总结 Javascript在前端开发中扮演着重要的角色,但是在开发过程中,经常会遇到Javascript代码执行效率较差的情况。以下是优化Javascript执行效率的一些方法总结。 1. 减少DOM操作 DOM操作是非常消耗性能的,每次变更都会让浏览器重新计算一次布局和绘制,因此尽量少的执行DOM操作可以提升代码的…

    JavaScript 2023年6月10日
    00
  • JavaScript实现自动切换图片代码

    下面我来为您详细讲解“JavaScript实现自动切换图片代码”的完整攻略。 一、了解需求 首先我们需要了解实现自动切换图片所需的功能和需求: 显示多张图片,并实现自动切换; 当鼠标悬停在某个图片上时,停止自动切换,并显示当前的图片; 当鼠标离开时,继续自动切换。 二、代码实现 1. HTML部分 <div id="img-box"…

    JavaScript 2023年6月11日
    00
  • JS检测页面中哪个HTML标签触发点击事件的方法

    要检测页面中哪个HTML标签触发了点击事件,我们可以使用JavaScript语言提供的事件监听函数来实现。以下是实现的步骤: 获取页面中所有的HTML标签 我们可以使用document.querySelectorAll()方法获取页面中所有的HTML标签,该方法返回一个NodeList对象,我们可以使用forEach()方法遍历其中的每一个标签。 示例代码:…

    JavaScript 2023年6月10日
    00
  • 详解JavaScript实现简单的词法分析器示例

    下面是详解“详解JavaScript实现简单的词法分析器示例”的完整攻略: 一、词法分析器概述 词法分析器是编译器中最简单的部分之一,它的主要功能是将代码分解为有意义的词法单元,例如关键字、标识符、常量、操作符等。在构建词法分析器时,我们可以使用许多工具和技术,例如正则表达式、自动机、递归下降解析器等。 二、实现一个简单的词法分析器 下面我们将介绍如何使用J…

    JavaScript 2023年5月28日
    00
  • js中document.getElementByid、document.all和document.layers区分介绍

    下面是关于“js中document.getElementByid、document.all和document.layers区分介绍”的完整攻略。 一、介绍 在 JavaScript 中,用于访问和操作 HTML 页面中的元素的常见的方式有三种:document.getElementByid、document.all和document.layers。它们分别代…

    JavaScript 2023年6月10日
    00
  • JavaScript内存管理介绍

    接下来我将分享关于JavaScript内存管理的完整攻略,包括内存分配、垃圾回收和常见的内存泄漏问题。 什么是JavaScript内存管理 JavaScript内存管理是指控制内存分配和垃圾回收的过程。JavaScript运行时环境会自动为每个脚本分配一定的内存,然后在代码执行期间将变量、函数和对象等存储在分配的内存空间中。当不再需要这些变量、函数和对象时,…

    JavaScript 2023年6月10日
    00
  • JS删除String里某个字符的方法

    当我们使用JavaScript处理字符串时,经常需要从字符串中删除某个字符,本文详细介绍JS删除String里某个字符的各种实现方法。 方法一:使用replace()函数 replace()函数可以将字符串中的指定字符替换成新的字符,通过将要删除的字符用空字符串替换掉就可以实现删除效果。 代码示例: let originalStr = "This …

    JavaScript 2023年5月28日
    00
  • javascript实现支付宝滑块验证码效果

    下面是关于“javascript实现支付宝滑块验证码效果”的完整攻略: 1. 前言 在前面,要明确以下几点: 验证码的作用是为了防止机器人恶意操作,确保网站健康稳定运行; 下面的攻略仅供学习和研究,不得用于非法用途; 所有的代码片段都是基于 jQuery 实现的。 2. 实现思路 在实现“支付宝滑块验证码效果”的过程中,我们可以采用以下几个步骤: 获取图片、…

    JavaScript 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部