html标签自定义属性

「已注销」 2009-10-19 10:01:36
以下内容摘自新浪邮箱源代码

<input _action="write_new" type="button" value="再写一封>>" />

点击此按钮他会跳转到写邮件页面但是没有任何js代码,是否是_action="write_new"属性的关系。
而_action在标准的input标签中是没有的,那么这个自定义属性是如何工作的呢?
...全文
1342 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
雅菲 2011-08-10
  • 打赏
  • 举报
回复
正在学习自定义标签属性
浴火涅磐 2009-10-19
  • 打赏
  • 举报
回复
楼主要自定义的话,必须要自己写一些js代码来实现它对应的行为
BeenZ 2009-10-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 sharp_ice 的回复:]
BeenZ,如果有N个不同的_action,你的代码写起来可费劲喽
我也没看过源代码,不过我猜测应该是对DOM根节点仅注册一个onclick事件,然后根据event.srcElement来取得_action,然后通过switch case 的办法根据不同的_action调用不同的方法
[/Quote]

这里只是举个自定义标签的用法,如果实际运用中肯定不这么做,如果是我肯定在外部配置针对自定义结点的操作
蓝色_冰点 2009-10-19
  • 打赏
  • 举报
回复
我也给个吧
<!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>
<title>无标题文档</title>
</head>

<body>
<div onclick="DoAction()">
在这个div内的元素都可以使用 _action <br/>
<input type="button" value="button" _action="Hello" />
<input type="checkbox" />
<div _action="ShowMe">xxxxxxx</div>
</div>

<script language="javascript" type="text/javascript">
function DoAction(){
var dom = event.srcElement;
var action = dom.getAttribute("_action");
switch (action) {
case "ShowMe":
ShowMe(dom);
break;
case "Hello":
Hello(dom)
break;
}
}
function ShowMe(dom) {
alert(dom.innerHTML);
}
function Hello(dom) {
alert("Hello");
}
</script>
</body>
</html>
「已注销」 2009-10-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sharp_ice 的回复:]
补充一点:
这样的话,不仅input标签可以使用_action,任何标签都可以使用
[/Quote]
的确,确实不应该使用ByTagName来遍历元素。有更好的提议吗?
其实不仅仅是sina其他大网站都有见过这样使用属性的。
蓝色_冰点 2009-10-19
  • 打赏
  • 举报
回复
补充一点:
这样的话,不仅input标签可以使用_action,任何标签都可以使用
蓝色_冰点 2009-10-19
  • 打赏
  • 举报
回复
BeenZ,如果有N个不同的_action,你的代码写起来可费劲喽
我也没看过源代码,不过我猜测应该是对DOM根节点仅注册一个onclick事件,然后根据event.srcElement来取得_action,然后通过switch case 的办法根据不同的_action调用不同的方法
BeenZ 2009-10-19
  • 打赏
  • 举报
回复
他自定义标签,是方便添加自己特殊的属性而不会和原始的html属性冲突,这样就可以针对特殊标签写特殊事件

eg

<script>
window.onload=function(){
var inputs=document.getElementsByTagName("input");
for(var i=0;i<inputs.length;i++){
if(inputs[i]._action=="write_new") inputs[i].onclick=function(){
alert("跳转了")
}
}
}
</script>
<input _action="write_new" type="button" value="再写一封>>" />
<input type="button" value="空的">
MuBeiBei 2009-10-19
  • 打赏
  • 举报
回复
有可能是交给后台去处理了~··

<input>标签没有这个_action 但是可以写上 没错的~·
jol_boy 2009-10-19
  • 打赏
  • 举报
回复
自定义属性,故名思意啊,根据你自己的逻辑进行设置,进行操作使用的。随便你设置什么,你不去用,是没什么影响的,就当是费代码,夹杂在html中

87,995

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧