在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
简述 复制代码 代码如下:<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>test</title> </head> <body> <a id="a" href="" onclick=".getAttribute(\"href\",2)">test</a> </body> </html> 在IE6、7下点击,都弹出大大的“/haha”!!!我就开始怀疑是其他东西在搞鬼了。这时候,想到我的a标签是怎么来的(基于字符串的js模板,innerHTML)……于是,再通过以下代码模拟: 复制代码 代码如下:<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>test</title> </head> <body> <div id="test"></div> <script> document.getElementById("test").innerHTML = '<a id="a" href="/haha" onclick="alert(this.getAttribute(\'href\',2));return false;">test</a>'; </script> </body> </html> 再次测试……sister's……重现问题了!实测,在生成a之后,对a再次setAttribute("href","/haha",2),再getAttribute("href",2)可以拿回“/haha”。但如果要在模板中做这种事情,似乎太恶心了,果断放弃!还是听Frank的话……简简单单加个属性标识两种链接元素,别钻牛角尖。 再钻一钻-_-!: 复制代码 代码如下:<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>test</title> </head> <body> <div id="test"></div> <script> var test = document.getElementById("test"); var a = document.createElement("a"); var txt = document.createTextNode("test"); a.href="/haha"; a.onclick=function() { alert(this.getAttribute('href',2));//"/haha" return false; }; a.appendChild(txt); test.appendChild(a); </script> </body> </html> 最后,怀疑通过innerHTML插入节点时,ie6、7会做一些它认为正确的“容错”处理……容着容着,就让我错了…… |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论