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

DOM création de lien a href="" onclick sous IE

4 réponses
Avatar
Arnaud Buissot
Bonjour,

Je souhaiterais créer un lien sous la forme <a href="toto.html"
onClick="MaFonction()">toto</a>

J'ai bien trouver la méthode pour Forefox mais je n'arrive pas sous IE
Est ce que vous pourriez m'aider ?

Ci-dessous le code utilisé.

echo 'var tdliennomcoloris=document.createElement("a");';
echo 'tdliennomcoloris.href="#";';
if (ereg("MSIE",$_SERVER['HTTP_USER_AGENT'])){
//Le navigateur est IE
echo 'tdliennomcoloris.onClick=function() { Go('.$tableau[$i][1].') }';
}else{
//la navigateur n'est pas IE
echo
'tdliennomcoloris.setAttribute("onClick","Go(\''.$tableau[$i][1].'\')");';
}
echo 'var nomcoloris=document.createTextNode("'.$tableau[$i][2].'");';
echo 'tdliennomcoloris.appendChild(nomcoloris);';

Je fais appel à ce code à partir d'une autre page PHP avec un script
XMLhttprequest.

Encore merci

4 réponses

Avatar
YD
Je souhaiterais créer un lien sous la forme <a href="toto.html"
onClick="MaFonction()">toto</a>

J'ai bien trouver la méthode pour Forefox mais je n'arrive pas sous IE
Ci-dessous le code utilisé.

echo 'tdliennomcoloris.onClick=function() { Go('.$tableau[$i][1].') }';


Il me semble que la syntaxe est onclick (sans majuscule)...

--
Y.D.

Avatar
SAM
Bonjour,

Je souhaiterais créer un lien sous la forme <a href="toto.html"
onClick="MaFonction()">toto</a>


Non, c'est :
<a href="toto.html" onclick="return MaFonction()">toto</a>
et MaFonction retourne 'false' en fin d'exécution
ou :
<a href="toto.html" onClick="MaFonction();return false;">toto</a>

afin de neutraliser le lien HTML

J'ai bien trouver la méthode pour Forefox mais je n'arrive pas sous IE
Est ce que vous pourriez m'aider ?

Ci-dessous le code utilisé.

echo 'var tdliennomcoloris=document.createElement("a");';


cette manie de faire echoyer ou printer alors qu'on peut bien tout
écrire normalement ...

echo 'tdliennomcoloris.href="#";';
if (ereg("MSIE",$_SERVER['HTTP_USER_AGENT'])){


et les trucs conditionnels propre à M$ ça ne serait pas mieux ?
plutôt que de se baser sur une détection, sommes toutes, foireuse.

//Le navigateur est IE
echo 'tdliennomcoloris.onClick=function() {
Go('.$tableau[$i][1].') }';
}else{
//la navigateur n'est pas IE
echo


et puis ... pourquoi se compliquer la vie ?
D'une part entre IE et Fx (comme s'ils étaient infichus de parler la
même langue), d'autre part avec le code PHP

print("
var tdliennomcoloris=document.createElement('a');
tdliennomcoloris.href = '#';
tdliennomcoloris.onclick = function() {
return Go('$tableau[$i][1]');};
var nomcoloris=document.createTextNode('$tableau[$i][2]');
tdliennomcoloris.appendChild(nomcoloris);
document.body.appendChild(tdliennomcoloris);
"};


ou

var tdliennomcoloris=document.createElement('a');
tdliennomcoloris.href = '#';
tdliennomcoloris.onclick = function() {
return Go('<?php echo $tableau[$i][1] ?>');};
var nomcoloris=document.createTextNode('<?php echo $tableau[$i][2] ?>');
tdliennomcoloris.appendChild(nomcoloris);
document.body.appendChild(tdliennomcoloris);

Je fais appel à ce code à partir d'une autre page PHP avec un script
XMLhttprequest.


Et ? qu'a-ce à voir ?

Si ce n'est qu'on se demande pourquoi le truc n'est pas entièrement
prémâché en PHP (pourquoi requester du JS ? le XHR n'est pas
suffisamment "dynamique" ?)


Bon ! ... si finalement la question est :
comment charger du JavaScript une fois la page affichée, regarder ici :
<http://members.aol.com/_ht_a/hikksnotathome/loadJSFile/>

Sinon si c'est vraiment le onclick qui est oublié lors du XMLHttpRequest
essayer d'innerhachetélémer le code HTML kivabien (avec ses onclick)
et adjoindre un JS qui va re-coller le onclick au lien.
(le HTML innerhachetélémé ira bien à IE et le JS complétera pour Fx).
(ou lycèe de versailles, ça va bien finir par plaire à l'un ou à l'autre)

fichier à obtenir par le XHR :

<a href="#" id="truc"
onclick="return Go('machinchouette')">machin-chouette</a>
<script type="text/javascript">
document.getElementById('truc').onclick = function() {
return Go('machinchouette');};
</script>

Avatar
Arnaud Buissot
merci beaucoup ça marche

Bonjour,

Je souhaiterais créer un lien sous la forme <a href="toto.html"
onClick="MaFonction()">toto</a>


Non, c'est :
<a href="toto.html" onclick="return MaFonction()">toto</a>
et MaFonction retourne 'false' en fin d'exécution
ou :
<a href="toto.html" onClick="MaFonction();return false;">toto</a>

afin de neutraliser le lien HTML

J'ai bien trouver la méthode pour Forefox mais je n'arrive pas sous IE
Est ce que vous pourriez m'aider ?

Ci-dessous le code utilisé.

echo 'var tdliennomcoloris=document.createElement("a");';


cette manie de faire echoyer ou printer alors qu'on peut bien tout
écrire normalement ...

echo 'tdliennomcoloris.href="#";';
if (ereg("MSIE",$_SERVER['HTTP_USER_AGENT'])){


et les trucs conditionnels propre à M$ ça ne serait pas mieux ?
plutôt que de se baser sur une détection, sommes toutes, foireuse.

//Le navigateur est IE
echo 'tdliennomcoloris.onClick=function() {
Go('.$tableau[$i][1].') }';
}else{
//la navigateur n'est pas IE
echo


et puis ... pourquoi se compliquer la vie ?
D'une part entre IE et Fx (comme s'ils étaient infichus de parler la
même langue), d'autre part avec le code PHP

print("
var tdliennomcoloris=document.createElement('a');
tdliennomcoloris.href = '#';
tdliennomcoloris.onclick = function() {
return Go('$tableau[$i][1]');};
var nomcoloris=document.createTextNode('$tableau[$i][2]');
tdliennomcoloris.appendChild(nomcoloris);
document.body.appendChild(tdliennomcoloris);
"};


ou

var tdliennomcoloris=document.createElement('a');
tdliennomcoloris.href = '#';
tdliennomcoloris.onclick = function() {
return Go('<?php echo $tableau[$i][1] ?>');};
var nomcoloris=document.createTextNode('<?php echo $tableau[$i][2] ?>');
tdliennomcoloris.appendChild(nomcoloris);
document.body.appendChild(tdliennomcoloris);

Je fais appel à ce code à partir d'une autre page PHP avec un script
XMLhttprequest.


Et ? qu'a-ce à voir ?

Si ce n'est qu'on se demande pourquoi le truc n'est pas entièrement
prémâché en PHP (pourquoi requester du JS ? le XHR n'est pas
suffisamment "dynamique" ?)


Bon ! ... si finalement la question est :
comment charger du JavaScript une fois la page affichée, regarder ici :
<http://members.aol.com/_ht_a/hikksnotathome/loadJSFile/>

Sinon si c'est vraiment le onclick qui est oublié lors du XMLHttpRequest
essayer d'innerhachetélémer le code HTML kivabien (avec ses onclick)
et adjoindre un JS qui va re-coller le onclick au lien.
(le HTML innerhachetélémé ira bien à IE et le JS complétera pour Fx).
(ou lycèe de versailles, ça va bien finir par plaire à l'un ou à l'autre)

fichier à obtenir par le XHR :

<a href="#" id="truc"
onclick="return Go('machinchouette')">machin-chouette</a>
<script type="text/javascript">
document.getElementById('truc').onclick = function() {
return Go('machinchouette');};
</script>



Avatar
SAM
merci beaucoup ça marche


Quest-ce qui marche finalement et comment ?

Bonjour,

Je souhaiterais créer un lien sous la forme <a href="toto.html"
onClick="MaFonction()">toto</a>




Le bête lien ?

Non, c'est :
<a href="toto.html" onclick="return MaFonction()">toto</a>
et MaFonction retourne 'false' en fin d'exécution
ou :
<a href="toto.html" onClick="MaFonction();return false;">toto</a>



ou une circonvolution XHR ?

(snip)

--
sm