Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Petit probleme innerHTML et url relative avec FireFox

1 réponse
Avatar
Tom
Voila, j'utilise XMLHttpRequest pour recharger un cadre de ma
page ;...

Voila mon souci, je redefini, a chaque rechargement du cadre;, la
valeur de l'element base pour que le navigateur complete
convenablement les liens relatifs ....

Pour IE pas de probleme, j'utilise un script de la forme suivante :
document.getElementsByTagName("base")[0].href=3D"http://
monsite/nouveauDossier/";

Pour Firefox cette methode ne marche, je redeclare une balise <base>
dans l'utilisation de innerHTML (pas tres propre mais je voie pas
comment faire) et voici mon probleme ... Les URL relatives des images
sont convenablement completes .... Mais les URL des liens eux sont
completes =E0 l'aide de la valeur initiale de <base href=3D'....'> ...

Voici un exemple qui pourra vous =E9clairer sur mon probleme :


<head>
<base href=3D"http://monSite/image">
</head>

<div id=3Daff> RRRRa </div>

<script>
//document.getElementsByTagName("base")[0].href=3D"http://monSite";
document.getElementById("aff").innerHTML=3D"<base href=3D'http://
monSite/'><a href=3D'direction.html'><img src=3Dphoto.jpg></a>";
alert(document.getElementById("aff").innerHTML);
</script>


Merci par avance de vos reponses

1 réponse

Avatar
SAM
Voila, j'utilise XMLHttpRequest pour recharger un cadre de ma
page ;...

Voila mon souci, je redefini, a chaque rechargement du cadre;, la
valeur de l'element base pour que le navigateur complete
convenablement les liens relatifs ....

Pour IE pas de probleme, j'utilise un script de la forme suivante :
document.getElementsByTagName("base")[0].href="http://
monsite/nouveauDossier/";


l'exemple ne montre pas ça : il y manque l'anti-slash final.

De toute la manière ce n'est pas étonnant qu'innerHTML ne fonctionne pas:
<http://stephane.moriaux.pagesperso-orange.fr/truc/innerHTML_danger>

Mais ici c'est plus grave : Firefox ne veut pas changer la base de la page.

Même le code :

function chge() {
var b = document.getElementsByTagName("base")[0];
var n = b.cloneNode(true);
n.href="http://autre.site/";
b.parentNode.replaceChild(n, b);
}

ne donne rien de mieux

Pourtant
alert(document.getElementsByTagName("base")[0].href);
donne bien le nouveau site .... :-(

Va falloir trouver une autre méthode ... ? !


function chgImg(url, imag) {
document.images[0].src = url+imag;
}

<a href="javascript:chgImg('http://autre.site/', 'img.jpg');">changer
l'image, autre site</a>


--
sm