js如何实现关闭窗口之前调用事件?

JavaScript014

js如何实现关闭窗口之前调用事件?,第1张

var EventUtil = {

addHandler: function (element, type, handler) {

      if (element.addEventListener) {

          element.addEventListener(type, handler, false)

      } else if (element.attachEvent) {

          element.attachEvent("on" + type, handler)

      } else {

          element["on" + type] = handler

      }

  },

  preventDefault: function (event) {

      if (event.preventDefault) {

          event.preventDefault()

      } else {

          event.returnValue = false

      }

  }

}

EventUtil.addHandler(window,"beforeunload",function(){....})

关闭窗口

window.close()关闭指定的浏览器窗口。如果不带窗口引用调用close()函数,JavaScript就关闭当前窗口。在事件处理程序中,你必须指定window.close(),而不能仅仅使用close()。由于JavaScript总静态对象的作用范围,不带对象名字的close()调用等价于document.close()。

如果你执行close()方法去关闭一个不是由脚本程序打开的窗口,就会出现一个确认对话框让用户选择是否关闭窗口。如果在历史列表中只有当前一个记录,那么在Navigator中就不会出现对话框。然而,如果你使用close()退出最后运行的浏览器实例,确认对话框就会出现。看看下面在2类浏览器中出现的对话框样子:

点击下面的链接打开一个新窗口,其中内容是tryclose.html:

Launch Window (with JavaScript)

Launch Window (with HTML)

第1个链接使用JavaScript的window.open()方法来打开一个窗口,第2个链接简单地使用TARGET属性实现同样目的:

<A HREF="javascript:void(window.open('tryclose.html'))">Launch Window (with JavaScript)</A><BR>

<A HREF="tryclose.html" TARGET="_blank">Launch Window (with HTML)</A>

页面tryclose.html显示一个按钮,它负责执行window.close()方法:

<FORM><INPUT TYPE="button" VALUE="Close Window" onClick="window.close()"></FORM>

当你点击第1个链接打开新窗口后,浏览器就“记住”了它是由一个脚本程序生成的。所以,当你点击按钮时,新窗口不用再确认操作就被关闭。第2个链接是另外一回事了,它不使用任何JavaScript打开一个新窗口,当你点击按钮时,Internet Explorer将显示一个确认对话框。然而,Navigator立即关闭这个窗口,因为,新窗口在会话历史中没有任何文档。

JavaScript允许你在其他的窗口使用一段脚本程序关闭另外一个窗口。

点击后关闭的窗口

许多标准的应用程序都有一个About对话框,当用户在其中任何地方点击一次鼠标时,窗口就被关闭。下面就对窗口使用JavaScript来实现同样的效果。首先,请看看打开新窗口的代码:

<SCRIPT LANGUAGE="JavaScript">

<!--

function launchAbout() {

about = window.open("about.html", "about", "height=75,width=250")

return false

}

// -->

</SCRIPT>

<A HREF="about.html" onClick="return launchAbout()">About</A>

点击链接后,生成一个新窗口。然后,你可以在其中点击任何地方,就关闭那个窗口。在文件about.html的HEAD区域,添加下面的脚本程序:

<SCRIPT LANGUAGE="JavaScript">

<!--

function closeWin() {

window.close()

}

if (window.Event) document.captureEvents(Event.ONCLICK)

document.onclick = closeWin

// -->

</SCRIPT>

GOOD LUCK

方法一:试试这样,将body里加入onunload事件,当页面关闭前会先执行这个函数,如:

<body onunload="alert('函数')">

这样的话,不需要点击关闭按钮,反正只要关闭页面就会执行这个函数。

方法二:你有个关闭按钮,那么你的关闭按钮可能用的是window.close函数,但是这里你可以自定义这个按钮的函数,点击按钮的时候执行另外一个函数,如执行下面这个自定义函数:

<script type="text/javascript">

function guanbi(){

alert("让我们一起为了美好明天而奋斗!")//这里可以先要执行的判断语句,接着再执行window.close

window.close()

}

</script>