HTML中不支持静态Expando的元素的问题


Posted in Javascript onMarch 08, 2007

在使用脚本统一处理一批页面的时候,我希望通过被处理页面的TITLE元素取到文档的标题和我自定义的一些属性。这些附加的属性是我在服务器端通过Attributes集合添加的,可是运行的结果和我的期望老是相去甚远,怎么我在TITLE元素里写入的自定义属性老是空值呢?

    客服端和服务器端代码分别是:

    ASPX:
<title id="title" runat="server">Query Info</title>
    C#:  protected HtmlGenericControl title;

private void Page_Load(object sender, System.EventArgs e)
{
    // ...
    title.InnerHtml = "查询信息";
    title.Attributes["icon"] = "QueryInfo.gif;
}
    HTML:
<title id="title" icon="QueryInfo.gif">查询信息</title>
    JavaScript:
var iconPath = docucment.all.tags('TITLE')[0].icon;
if ( iconPath )
{
    var img = document.createElement('IMG');
    img.src = iconPath;
    // ...
}

    结果就是总出不来我希望的那个icon,跟踪JavaScript代码,发现iconPath总是undefined。在看看HTML代码,里面明明有icon="QueryInfo.gif"这个属性值对。于是从title对象中去查看outerHTML,outerHTML居然是:<title id="title">查询信息</title>。根本没有icon那个属性,难怪JavaScript取到的iconPath总是undefined的说。

    仔细查下去,发现原来是html元素在处理expando属性上有区别。我们给html元素添加expando属性有两种方式,一是我们常用的动态方式;就是使用脚本来给html元素添加expando属性。二是使用静态方式;即在html代码中以literal方式添加expando属性。分别举例如下:

    动态添加expando属性: <span id=mySpan>this is a span element.</span>
<script language=javascript>
mySpan.myAttri = 'attribute';
</script>
    静态添加expando属性: <span id=mySpan myAttri=attribute>this is a span element.</span>
    本来这两种写法基本是没有什么区别的,可是元素title却只支持动态添加expando属性,而不支持静态添加expando属性,这也就是为什么我开始会出错误的原因。那么还有那些html elements和title一样不支持静态添加expando属性呢?在108个html elements中,以下10个元素都不支持静态添加expando属性:
HTML, HEAD, TITLE, BODY, BASEFONT, FORM, HR, HR, TBODY, SCRIPT
    不过动态添加expando属性,是所有的html elements和dhtml objects都支持的。

Javascript 相关文章推荐
可以把编码转换成 gb2312编码lib.UTF8toGB2312.js
Aug 21 Javascript
基于jquery的自定义鼠标提示效果 jquery.toolTip
Nov 14 Javascript
解决jquery的datepicker的本地化以及Today问题
May 23 Javascript
javascript运算符——逻辑运算符全面解析
Jun 27 Javascript
angular基于路由控制ui-router实现系统权限控制
Sep 27 Javascript
简单学习vue指令directive
Nov 03 Javascript
JS字符串长度判断,超出进行自动截取的实例(支持中文)
Mar 06 Javascript
Three.js利用orbit controls插件(轨道控制)控制模型交互动作详解
Sep 25 Javascript
thinkjs微信中控之微信鉴权登陆的实现代码
Aug 08 Javascript
解决在Vue中使用axios用form表单出现的问题
Oct 30 Javascript
js实现多图和单图上传显示
Dec 18 Javascript
Kettle中使用JavaScrip调用jar包对文件内容进行MD5加密的操作方法
Sep 04 Javascript
使用TextRange获取输入框中光标的位置的代码
Mar 08 #Javascript
获取JavaScript用户自定义类的类名称的代码
Mar 08 #Javascript
JScript内置对象Array中元素的删除方法
Mar 08 #Javascript
在JavaScript中遭遇级联表达式陷阱
Mar 08 #Javascript
原型方法的不同写法居然会影响调试的解决方法
Mar 08 #Javascript
在js中使用&quot;with&quot;语句中跨frame的变量引用问题
Mar 08 #Javascript
JS类库Bindows1.3中的内存释放方式分析
Mar 08 #Javascript
You might like
Linux下ZendOptimizer的安装与配置方法
2007/04/12 PHP
强制PHP命令行脚本单进程运行的方法
2014/04/15 PHP
PHP实现对数字分隔加千分号的方法
2019/03/18 PHP
Yii 实现数据加密和解密
2021/03/09 PHP
javascript 用记忆函数快速计算递归函数
2010/03/15 Javascript
取消选中单选框radio的三种方式示例介绍
2013/12/23 Javascript
解决jquery中美元符号命名冲突问题
2014/01/08 Javascript
Chrome下ifame父窗口调用子窗口的问题示例探讨
2014/03/17 Javascript
jquery+php实现搜索框自动提示
2014/11/28 Javascript
JavaScript将XML转成JSON的方法
2015/03/12 Javascript
5种JavaScript脚本加载的方式
2017/01/16 Javascript
js求数组中全部数字可拼接出的最大整数示例代码
2017/08/25 Javascript
VueJS组件之间通过props交互及验证的方式
2017/09/04 Javascript
vue2.0 根据状态值进行样式的改变展示方法
2018/03/13 Javascript
vue中添加与删除关键字搜索功能
2019/10/12 Javascript
Node.js API详解之 console模块用法详解
2020/05/12 Javascript
Python 多核并行计算的示例代码
2017/11/07 Python
Python设计模式之观察者模式原理与用法详解
2019/01/16 Python
如何卸载python插件
2020/07/08 Python
Python matplotlib模块及柱状图用法解析
2020/08/10 Python
Django数据统计功能count()的使用
2020/11/30 Python
CSS3实现可关闭的下拉手风琴菜单效果
2015/08/31 HTML / CSS
css3类选择器之结合元素选择器和多类选择器用法
2017/03/09 HTML / CSS
基于HTML5实现类似微信手机摇一摇功能(计算摇动次数)
2017/07/24 HTML / CSS
英国领先的男装设计师服装购物网站:Mainline Menswear
2018/02/04 全球购物
菲律宾优惠券网站:MetroDeal
2019/04/12 全球购物
Abbott Lyon官网:女士手表、珠宝及配件
2020/12/26 全球购物
优秀护士获奖感言
2014/02/20 职场文书
小学生期末评语
2014/04/21 职场文书
财务部副经理岗位职责范本
2014/06/17 职场文书
周恩来的四个昼夜观后感
2015/06/03 职场文书
小学运动会开幕词
2016/03/04 职场文书
技术转让协议书
2016/03/19 职场文书
高中语文教材(文学文化常识大全一)
2019/08/13 职场文书
总结几个非常实用的Python库
2021/06/26 Python
Element实现动态表格的示例代码
2021/08/02 Javascript