• [原创 js] js访问样式表函数


    因为写js经常需要用到访问样式,我们常用的做法是通过 DOM.style.XXX来读写样式信息的。可是DOM.style这种写法只能访问<DOM style=""></DOM>,这样在标签里内置的样式,如果样式写在<style type="text/css"></style>,或者.css文件里,那么就办法读到样式了。

    其实呢,还有别的方法可以读到这些样式信息,方法有两种,一种是通过document.styleSheets对象,另一种是通过“最终样式”对象。其中IE中这个对象叫做currentStyle,FF中这个对象叫做document.defaultView。我将这两个类打包了一下,做了一个用于访问样式信息的函数,如下:

    //===========================访问样式表函数====================================
    function returnStyle(obj,styleName){
    var myObj = typeof obj == "string" ? document.getElementById(obj) : obj;
    if(document.all){
        return eval("myObj.currentStyle." + styleName);
    } else {
        return eval("document.defaultView.getComputedStyle(myObj,null)." + styleName);
    }
    }

    函数有两个参数:

    obj:               访问的对象,类型为DOM对象,或者是对象的id;

    styleName:     需要访问的样式名称。类型为string,但是名称不能用"-"号,要用像style.对象的属性名一样的大小写混写名称,例如background-color要写成backgroundColor。

    函数返回值为 string类型。

    注意:这个方法只能访问样式文件,不能写。如果要写样式,还是要用DOM.style.XXX的方法。另外,FF下有些样式访问有问题,例如padding,margin。如果样式中设置了padding,margin等值,我们可以用marginLeft来返回值。

    ========================= 以下是demo ===========================

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <style type="text/css">
    #demo{background-color:#000;padding:10px;color:#fff;200px;}
    </style>
    <script type="text/javascript">
    //===========================访问样式表====================================
    function returnStyle(obj,styleName){
    var myObj = typeof obj == "string" ? document.getElementById(obj) : obj;
    if(document.all){
        return eval("myObj.currentStyle." + styleName);
    } else {
        return eval("document.defaultView.getComputedStyle(myObj,null)." + styleName);
    }
    }

    </script>
    <title>阿当制作</title>
    </head>

    <body>
    <div id="demo">这里是测试内容</div>
    <br /><br />
    <a href="###" onclick="alert(returnStyle('demo','width'));">点击测试</a>
    </body>
    </html>

  • 相关阅读:
    Python(错误的处理方法)
    WP7 QQ词典V1.1 共享源代码
    【原创】Windows Phone真机抓包并分析应用程序的网络通讯(Android、iPhone也适用)
    使用uiautomation自动化重命名pdf书签,使全大写字母变成首字母大写
    分享python分析wave, pcm音频文件
    最近在做的一个wp7地图应用
    HTML5初探 基本的HTML5模版
    HTML5页面架构元素 <header>标签
    Wix 打包(1)[转载]
    windows 域验证 IIS7.0
  • 原文地址:https://www.cnblogs.com/cly84920/p/4427211.html
Copyright © 2020-2023  润新知