This Domain(Admin5.com) is for Sale:

完美解决一个事件激活多个函数

时间:2007-10-22  来源:不详  作者:林子
 如果你的网页中一个“OnLoad”事件要激活两个以上的javascript函数,那怎么办呢?小阳曾查阅了不少资料,结果都不尽如人意,无非是程序员根据情况,把要激活的函数统一放在一个函数里激活。

  但作为一个程序员,编写的代码的适用性是很重要的。请看下面一个例子:
织梦内容管理系统

<BODY OnLoad='alert("这是<BODY>标签调用的函数")'>
<script language="javascript">
function myfunction(){
alert("这是JS脚本调用的函数");
}
document.body.onload=myfunction;
</script>
</BODY>

dedecms.com

  运行后你会发现,它只跳出一个“这是JS脚本调用的函数”的警告框。< BODY>标签中要求激活的函数被“忽略”了。当然你可以运用前面提过的方法,把两个函数放一个函数里激活。但这样有不少弊端,特别是如果把这段javascript代码写成一个"myjs.js"文件,要用它的话直接加上< script language="javascript" src="myjs.js">< /script>即可,但如果还要在引用文件的页面中根据情况修改标签或者添加一段代码,多麻烦呀。这就降低了代码的适用性了。

本文来自织梦

  可不可以在编写javascript代码时就设计好,如果前面OnLoad事件已经有函数要激活,让它仍然激活前面的函数,但同时也激活本段代码所需要的函数?答案是肯定的。我们先看下这段代码:
织梦内容管理系统

<BODY OnLoad='alert("这是<BODY>标签调用的函数")'>
<script language="javascript">
// document.body.onload是函数(function)型,用toString()函数转为字符串(string)型:
alert(document.body.onload.toString());
</script>
</BODY>



dedecms.com

  运行后其中一个警告框中提示: 本文来自织梦

  function anonymous()
  {
  alert("这是标签调用的函数")
  }

copyright dedecms

  发现什么了吗?“document.body.onload.toString()”就是上面这段函数代码!我们这段字符串作为代码的一部分运行,那么我们就多了一个函数“anonymous()”,于是将这个函数和我们现在需要激活的函数一起激活就行了! 本文来自织梦

  下面我们以第一次提到的代码为例进行修改,得到最终代码:

copyright dedecms

<BODY OnLoad='alert("这是<BODY>标签调用的函数")'>
<script language="javascript">
function myfunction(){

看完这篇,您有何感觉呢?

文章评论

共有位Admini5网友发表了评论 查看完整内容