来源:自学PHP网 时间:2014-12-15 15:59 作者: 阅读:次
[导读] 英文:A链接标记ie下会自动补全href. Whilst working on the Ajax Link Tracker and MapSurface I have come across an inconsistency in how the href attribute is retrieved using DOM Scripting.The href attribute is...
英文:A链接标记ie下会自动补全href.
Whilst working on the Ajax Link Tracker and MapSurface I have come across an inconsistency in how the href attribute is retrieved using DOM Scripting.
The href attribute is
英文:A链接标记ie下会自动补全href. Whilst working on the Ajax Link Tracker and MapSurface I have come across an inconsistency in how the href attribute is retrieved using DOM Scripting. The href attribute is different to other element attributes in that the value set can be relative to the context of the page URL. If you set a link with a relative href attribute <a href="../development/test1.html">test page</a> The browser will look at the pages current URL and derive an absolute URL for the link. http://www.glenn.jones.net/development/test1.html This is the root of the problem, some browsers return the text of the attribute and others return the derived absolute URL. The results also differ by the method you use to retrieve the href attribute. There are three common ways to access an attribute: linkobj.href; linkobj[‘href’]; linkobj.getAttribute(‘href’); The linkobj.href and linkobj[‘href’]; methods of accessing the attribute consistently return the derived absolute URL.
Microsoft has tried to address this by linkobj.getAttribute(‘href’); linkobj.getAttribute(‘href’,2);
|
| Derived |
Absolute URL Attribute Text |
IE
linkobj.href;
x
IE
linkobj.getAttribute(‘href’);
x
IE
linkobj.getAttribute(‘href’,2);
x
Gecko
linkobj.href;
x
Gecko
linkobj.getAttribute(‘href’);
x
Gecko
linkobj.getAttribute(‘href’,2);
x
Opera
linkobj.href;
x
Opera
linkobj.getAttribute(‘href’);
x
Opera
linkobj.getAttribute(‘href’,2);
x
Get attribute test page Test on IE6, Firefox 1.5 and Opera 8.51.
So what should be returned by the getAttribute method? After a really good exchange with Jim in the comments below, I stand corrected. The specification does say the getAttribute should return the attribute value, not the absolute URL. The Microsoft approach is wrong. For the time being I am using the old school object property method linkobj.href to return derived absolute URLs. It provides the most consistent results across all browsers.
URLs of interestW3C REC DOM Level 2 Core specification for getAttribute Gecko documentation for getAttribute Microsoft documentation for getAttribute As usual just as I was finishing this post I found this bug report on the QuickMode site which discusses the same subject. getAttribute HREF is always absolute.html |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com