英文: A 链接标记 IE 下会自动补全 Href.
Enquanto trabalha no rastreador de link e no Mapsurface do Ajax, encontrei uma inconsistência na maneira como o atributo HREF é recuperado usando o script DOM.O atributo HREF é diferente de outros atributos de elemento, pois o conjunto de valores pode ser relativo ao contexto do URL da página. Se você definir um link com um atributo HREF relativo
<a href = ../desenvolvimento/test1.html> página de teste </a>
O navegador analisará o URL atual das páginas e derivará um URL absoluto para o link.
http://www.glenn.jones.net/development/test1.html
Esta é a raiz do problema, alguns navegadores retornam o texto do atributo e outros retornam o URL absoluto derivado. Os resultados também diferem pelo método que você usa para recuperar o atributo href. Existem três maneiras comuns de acessar um atributo:
linkobj.href; linkobj ['href']; linkobj.getAttribute ('href');
O linkobj.href e o linkobj['href ']; Métodos de acesso ao atributo retornam consistentemente o URL absoluto derivado.
A Microsoft tentou resolver isso por problema adicionar um segundo parâmetro ao método getAttribute. O segundo parâmetro pode ser definido como 0,1 ou 2. Se o parâmetro estiver definido como 2, o método retorna o texto do atributo. Qualquer outra configuração retornará o URL absoluto derivado.
linkobj.getAttribute ('href'); linkobj.getAttribute ('href', 2);
URL absoluto
Então, o que deve ser devolvido pelo método GetAttribute? A especificação do núcleo de nível 2 do W3C DOM, que define a estrutura do método GetAttribute, não abrange esse problema. Não é que qualquer abordagem esteja errada ou certa. Nesse ponto, a especificação está aberta à interpretação.
Como codificador, gostaria de poder acessar os dois valores. A especificação do núcleo DOM deve ser atualizada para resolver o problema.
Por enquanto, estou usando o método de propriedade do objeto da velha escola linkobj.href para retornar URLs absolutos derivados. Ele fornece os resultados mais consistentes em todos os navegadores. URLs de interesse
Como sempre, assim que eu estava terminando este post, encontrei este relatório de bug no site Quickmode, que discute o mesmo assunto.
getattribute href é sempre absoluto.html