11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour à toutes et à tous,

j'ai un petit problème avec mon JS, car mon innerHTML me renvoie une erreur dans la console JS "Unexpected token ILLEGAL".

Je n'arrive pas à comprendre ou est mon erreur,donc je vous fait part de mon code pour voir si vous vous trouvez Smiley biggrin (pas chier le mec).

if(BrowserDetect.browser == "Explorer") {
			document.getElementById('body').innerHTML = "<div id='change-ie'>
			<p>You using Internet Explorer. You suck. <a href='http://browsehappy.com/?locale=en' id='check-nav'>Change navigator</a></p>
			</div>";
}


Merci d'avance de votre réponse.
Je suis trop c*n.

Il ne s'agissait pas de cette erreur. En fait, j'ai tester mon innerHTML en dehors de mon if, sans l'effacer, voilà pourquoi j'vais ce problème.

Ceci dit, mon problème n'est toujours pas résolu, car minatenant, il m'affiche ça: Cannot set property 'innerHTML' of null

@benj: je ne connait pas les caractères conditionnels. Je me coucherai moins bête ce soir ^^.
Pas de saut de ligne dans les chaînes de caractères en js. Pour le faire sur plusieurs lignes, il faut les concaténer.
var s = "une phrase" +
"e 2 lignes";
Le problème ne vient pas de là.

J'ai d'ailleurs utiliser les commentaires conditionnels pour améliorer le script, mais vu que je bosse sur Mac, ça va pas être évident dee tester IE Smiley smile .

Voici le code complet

var ie = (function(){
 
 var undef,
 v = 3,
 div = document.createElement('div'),
 all = div.getElementsByTagName('i');
 
 while (
 div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->',
 all[0]
 );
 
 return v > 4 ? v : undef;
 
}());

	if (ie == undefined) {
		console.log(ie);
		var body = document.getElementById('body');
		body.innerHTML="<p>test</p>"; // C'est celui-la qui marche pas
	};


J'ai mis un undefined pour l'utiliser sous un autre navigateur.
Modifié par nova313 (28 Mar 2013 - 23:24)
J'ai un doute :

var body = document.getElementById('body');
		body.innerHTML="<p>test</p>"; // C'est celui-la qui marche pas


si c'est la page complète que tu veux changer, c'est :
document.body.innerHTML = "<p>test</p>";


A moins que tu aies un élément type <div id='body'></div> bien sur ^^