Maison > interface Web > tutoriel HTML > Français : Une balise de lien terminera automatiquement la production de href_HTML/Xhtml_webpage sous ie

Français : Une balise de lien terminera automatiquement la production de href_HTML/Xhtml_webpage sous ie

WBOY
Libérer: 2016-05-16 16:43:40
original
1498 Les gens l'ont consulté

英文:A链接标记ie下会自动补全href.
En travaillant sur Ajax Link Tracker et MapSurface, j'ai rencontré une incohérence dans la façon dont l'attribut href est récupéré à l'aide des scripts DOM.
L'attribut href est différent des autres attributs d'élément dans le sens où la valeur définie peut être relative au contexte de l'URL de la page. Si vous définissez un lien avec un attribut href relatif
page de test
Le navigateur examinera l'URL actuelle de la page et en déduira une URL absolue pour le lien.
http://www.glenn.jones.net/development/test1.html
C'est la racine du problème, certains navigateurs renvoient le texte de l'attribut et d'autres renvoient l'URL absolue dérivée. Les résultats diffèrent également selon la méthode que vous utilisez pour récupérer l'attribut href. Il existe trois manières courantes d'accéder à un attribut :
lienobj.href; lienobj['href']; linkobj.getAttribute('href');
Les méthodes linkobj.href et linkobj[‘href’]; d'accès à l'attribut renvoient systématiquement l'URL absolue dérivée.
Microsoft a essayé de résoudre ce problème en problème en ajoutant un deuxième paramètre à la méthode getAttribute. Le deuxième paramètre peut être défini sur 0,1 ou 2. Si le paramètre est défini sur 2, la méthode renvoie le texte de l'attribut. Tout autre paramètre renverra l’URL absolue dérivée.
linkobj.getAttribute('href'); linkobj.getAttribute('href',2); Dérivé
URL absolue Texte d'attribut IE lienobj.href; x IE linkobj.getAttribute('href'); x IE linkobj.getAttribute('href',2); x Gecko lienobj.href; x Gecko linkobj.getAttribute('href'); x Gecko linkobj.getAttribute('href',2); x Opéra lienobj.href; x Opéra linkobj.getAttribute('href'); x Opéra linkobj.getAttribute('href',2); x Obtenir la page de test des attributs Test sur IE6, Firefox 1.5 et Opera 8.51.
Alors, que doit renvoyer la méthode getAttribute ? La spécification W3C DOM Level 2 Core qui définit la structure de la méthode getAttribute ne couvre pas ce problème. Ce n’est pas que l’une ou l’autre approche soit bonne ou mauvaise. Sur ce point le cahier des charges est sujet à interprétation.
En tant que codeur, j'aimerais pouvoir accéder aux deux valeurs. La spécification DOM Core doit être mise à jour pour résoudre le problème.
Après un très bon échange avec Jim dans les commentaires ci-dessous, je me corrige. La spécification indique que getAttribute doit renvoyer la valeur de l'attribut, pas l'URL absolue. L'approche de Microsoft est fausse.
Pour le moment, j'utilise la méthode des propriétés d'objet à l'ancienne linkobj.href pour renvoyer les URL absolues dérivées. Il fournit les résultats les plus cohérents sur tous les navigateurs. URL d'intérêt
Spécification de base W3C REC DOM niveau 2 pour getAttribute
Documentation Gecko pour getAttribute
Documentation Microsoft pour getAttribute
Comme d'habitude, alors que je terminais ce post, j'ai trouvé ce rapport de bug sur le site QuickMode qui aborde le même sujet.
getAttribute HREF est toujours absolu.html
Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal