首页 > 语言 > JavaScript > 正文

javascript 兼容所有浏览器的DOM扩展功能

2024-05-06 14:21:32
字体:
来源:转载
供稿:网友
今天周五,很闲,坐在电脑前没什么事可做,产品线的人也没提什么新的需求,可能下周会有新的需求和工作安排,但那是下周的事了。今天就想写点技术的东西,也就当作是记记笔记,本人水平有限,希望大家多多指教,嘴下留情,哈哈。
  有时候我们会想扩展DOM元素的功能,可以添加一些自定义的方法,以让它用起来更加灵活、方便;先来举个例子:
代码如下:
<!DOCTYPE html>
<html lang="zh">
 <head>
  <title>DOM功能扩展</title>
 </head>
 <body>
    <a href="javascript:void(0)" id="tagA">你好</a>
    <script type="text/javascript">
    <!--
        var tagA=document.getElementById("tagA");
        tagA.onclick=function(){
            alert(this.innerHTML);
        }
    //-->
    </script>
 </body>
</html>

毫无疑问,从以上代码可以看出,当点击A标签的时候会弹出“你好”,tagA是一个DOM元素,除了有onclick事件以外,还有onmouseover,onmouseout,onmousemove等等,而这些事件都是DOM元素本身就具有的;但现在我们希望对它进行扩展,例如可以让它支持tagA.bind,我可以用tagA.bind("click",function(){}),来代替tagA.onclick=function(){}。OK,现在的目的很明确,先看下面的代码:
代码如下:
<!DOCTYPE html>
<html lang="zh">
 <head>
  <title>DOM功能扩展</title>
 </head>
 <body>
    <a href="javascript:void(0)" id="tagA">你好</a>
    <script type="text/javascript">
    <!--
        var tagA=document.getElementById("tagA");
        tagA.bind("click",function(){
            alert(this.innerHTML);
        })
    //-->
    </script>
 </body>
</html>

以上这段代码就是功能扩展后的最终效果,它与上一段代码实现的功能是一样的,但现在它还不能执行,要进行扩展后才可以,在此之前先来看一些基础知识,这很重要,因为等下会用到:
  1、HTMLElement,在DOM标准中,每个元素都继承自HTMLElement,而HTMLElement又继承自Element,Element又继承自Node;于是我们可以使用HTMLElement的Prototype来扩展HTML元素的方法和属性,如何实现?我们来看一段代码:
代码如下:
<!DOCTYPE html>
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选