English: A link tag will automatically complete href in IE

English: A link tag will automatically complete href in IE 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); xGet attribute test page Test on IE6, Firefox 1.5 and Opera 8.51.
So what should be returned by the getAttribute method? The W3C DOM Level 2 Core specification which sets out the structure of the getAttribute method does not cover this issue. It is not that either approach is wrong or right. On this point the specification is open to interpretation.
As a coder I would like to be able to access both values. The DOM Core specification should be updated to address the problem.
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 interest
W3C 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

English: A link tag will automatically complete href in IE.
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 adding a second parameter to the getAttribute method. The second parameter can be set to 0,1 or 2. If the parameter is set to 2 the method returns the attribute text. Any other setting will return the derived absolute URL.
linkobj.getAttribute('href'); linkobj.getAttribute('href',2);
Derived
Absolute URL
Attribute Text

<<:  A brief discussion on several advantages of Vue3

>>:  How to build a virtual machine with vagrant+virtualBox

Recommend

HTML+CSS to achieve layered pyramid example

This article mainly introduces the example of imp...

Detailed explanation of the principle and usage of MySQL views

This article uses examples to illustrate the prin...

Vue parent component calls child component function implementation

Vue parent component calls the function of the ch...

The best solution for implementing digital plus and minus buttons with pure CSS

Preface: For the implementation of digital additi...

How to use VirtualBox to simulate a Linux cluster

1. Set up HOST on the host Macbook The previous d...

Vue uses canvas handwriting input to recognize Chinese

Effect picture: Preface: Recently, I was working ...

MySQL 8.0.18 installation and configuration method graphic tutorial (linux)

This article records the installation and configu...

Detailed tutorial on building a local idea activation server

Preface The blogger uses the idea IDE. Because th...

js to implement the snake game with comments

This article example shares the specific code of ...

MySQL detailed single table add, delete, modify and query CRUD statements

MySQL add, delete, modify and query statements 1....

Drop-down menu implemented by HTML+CSS3+JS

Achieve results html <div class="containe...

Linux system file sharing samba configuration tutorial

Table of contents Uninstall and install samba Cre...

jQuery plugin to implement accordion secondary menu

This article uses a jQuery plug-in to create an a...

Mysql uses stored procedures to quickly add millions of data sample code

Preface In order to reflect the difference betwee...

Alibaba Cloud ESC Server Docker Deployment of Single Node Mysql

1. Download the accelerated version of msyql dock...