我的编程空间,编程开发者的网络收藏夹
学习永远不晚

JavaScript窗口功能指南之检查一个窗口是否存在 (转)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

JavaScript窗口功能指南之检查一个窗口是否存在 (转)

JavaScript窗口功能指南之检查一个窗口是否存在 (转)[@more@]Javascript窗口功能指南之检查一个窗口是否存在
(作者:听风编译 2001年01月19日 11:35)

  当你创建一个新窗口时,给open()方法的返回值分配一个变量非常重要。比如,下面的语句创建一个新窗口,然后立即关闭它:

  win = window.open("http://www.docjs.com/", "js");

  win.close();

Window对象
  每一个浏览器窗口都与一个清楚地window对象对应,所以,当你想引用当前窗口时,你应该使用window对象。下面的语句设置当前窗口的URL:

  window.location.href = "http://www.docjs.com/";

  当你在脚本程序中放置这样一个语句时,你不需要指定window对象,因为当前窗口的存在是默认的:

  location.href = "http://www.docjs.com/";

  注意,self等价于window,所以,self.close()实际上就等于window.close()。

  当你想操纵一个窗口时,你必须确认它是存在的。在为window.open()方法定义一个变量时,要将它定义为全局变量并设置为null。记住,open()方法返回新窗口的window对象。这里是一个例子:

  var win = null;

  function launchWindow() {

   win = window.open();

   // statements that refer to the new window go here

  }

  如果你想对新窗口执行一个操作,你首先应该检查变量win是否为null:

  // if win exists, move the window

  if (win) win.moveTo(0, 0);

  注意,null等于false,同时任何其他合法的对象等价于true。如果win等于true,你就知道了它不是null,这意味着新窗口成功地创建了。

open "属性"
现在你知道了浏览器实际创建了新窗口。但是它仍然存在吗?不是必须的。你需要确认可用的窗口的确拥有一个真正的window对象。既然每个window对象对应于一个open()方法,你就可以通过webreference.com/js/column6/object.html" target=_blank>对象探测检查到这个方法:
  // 如果win.open存在,就移动窗口

  if (win.open) win.moveTo(0, 0);

  变量win对照窗口的window对象,所以win.open对应window的window.open方法。注意,条件表达式是一个函数引用,不是一个函数调用。除非你确认win存在,你不应该试图估计win.open。下面的语句描述了正确的执行方法:

  // if win and win.open exist, move the window

  if (win && win.open) win.moveTo(0, 0);

  由于&&是一个短操作符号,如果第一个参数(win)对应于true,那么结果就取决于第二个数值。如果第二个参数是false,那么整个表达式结果就是false。这是一个很重要的行为,因为如果win不存在,那么表达式win.open就会产生一个错误。

closed 属性
  由于Javascript的第一个版本,浏览器窗口成为一个非常困难的问题。比如,一个window对象的一些方法,例如close(),即使当窗口已经关闭时也能被执行,同时另外一些却不能(比如moveTo())。但是情况会更糟。Inte.NET Explorer和Navigator经常有不同的行为。而且,预测一定操作的结果经常是非常困难的,即使你以前已经做过类似的尝试。我们将告诉你如何克服这些困难,方法就是介绍一个在交叉浏览器中能应用的语句,它将检查一个给定的窗口是否被打开。

  window.closed属性是一个Boolean型数值,它定义了是否窗口已经被关闭。当窗口被关闭时,window对象依然存在,并且它的closed属性已经被设置为true。

  使用closed来判断打开的窗口以及仍能够被引用(从window.open方法返回的数值)的窗口是否仍然打开着。当窗口关闭时,你不应该试图再操纵它。因为window.closed仅仅被Internet Explorer 4、Navigator 3 和高版本所支持,所以你应该注意前面的版本问题。我们将使用下面的代码:

  // if win and win.open exist, and win.closed isn't true, move the window

  if (win && win.open && !win.closed) win.moveTo(0, 0);

  Internet Explorer 3 和 Navigator 2 不支持 closed 方法,所以它在Boolean型表达式中等价于false (就像其他不存在地属性一样,比如 window.tomershiran)。



免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

JavaScript窗口功能指南之检查一个窗口是否存在 (转)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

JavaScript窗口功能指南之检查一个窗口是否存在 (转)

JavaScript窗口功能指南之检查一个窗口是否存在 (转)[@more@]Javascript窗口功能指南之检查一个窗口是否存在(作者:听风编译 2001年01月19日 11:35)  当你创建一个新窗口时,给open()方法的返回值分
2023-06-03

JavaScript窗口功能指南之创建弹出窗口 (转)

JavaScript窗口功能指南之创建弹出窗口 (转)[@more@]Javascript窗口功能指南之创建弹出窗口(作者:听风编译 2001年01月19日 11:35)  Inte.NET Explorer 5.5支持一个新的window
2023-06-03

JavaScript窗口功能指南之创建对话框 (转)

JavaScript窗口功能指南之创建对话框 (转)[@more@]Javascript窗口功能指南之创建对话框(作者:听风编译 2001年01月19日 11:35)  Javascript支持几种内建的对话框:window.alert()
2023-06-03

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录