script src et contenu
Le
Bol

Salut
Avec son bouton +1 Google apporte une ecriture
dont je n'arrive pas à trouver de reference.
http://code.google.com/intl/fr/apis/+1button/
<script type="text/javascript" src="https://apis.google.com/js/plusone.js">
{"parsetags": "explicit"}
</script>
Appel de code externe et un passage de parametre
le Darft HTML5 ne semble d'ailleurs pas autoriser
autre chose de du commentaire en contenu lorsqu'il
y a src mais peut-etre me trompe-je
http://www.w3.org/TR/html5/scripting-1.html#the-script-element
http://www.w3.org/TR/html5/scripting-1.html#inline-documentation-for-external-scripts
Merci pour toute info
A+
Bol
Avec son bouton +1 Google apporte une ecriture
dont je n'arrive pas à trouver de reference.
http://code.google.com/intl/fr/apis/+1button/
<script type="text/javascript" src="https://apis.google.com/js/plusone.js">
{"parsetags": "explicit"}
</script>
Appel de code externe et un passage de parametre
le Darft HTML5 ne semble d'ailleurs pas autoriser
autre chose de du commentaire en contenu lorsqu'il
y a src mais peut-etre me trompe-je
http://www.w3.org/TR/html5/scripting-1.html#the-script-element
http://www.w3.org/TR/html5/scripting-1.html#inline-documentation-for-external-scripts
Merci pour toute info
A+
Bol
Ave,
Oui ce n'est pas très orthodoxe.
Je crois qu'ils exploitent le dilemme entre l'interprétation du HTML et
la construction du DOM par les navigateurs.
Pour faire simple, le contenu de l'élément <script> est ignoré par
l'interpréteur HTML, et n'est donc pas passé au moteur JS pour exécution.
Mais, par contre, ce contenu est construit et récupérable dans l'arbre
DOM, à charge pour un script quelconque de l'exploiter pour y trouver,
par exemple, des paramètres de configuration.
Le hic, à mon avis, est que cela oblige à employer la fonction "eval()"
sur le contenu récupéré, pour pouvoir l'exploiter.
Je ne sais pas pourquoi ils ont choisi cette méthode plutôt que de
passer les paramètres dans l'url, comme dans cet exemple :
Ce n'est pas plus dur à récupérer et surtout sans risque.
Effectivement, si le futur standard est implémenté tel quel, ils vont
avoir quelques problèmes avec leur bibliothèque, à moins que j'aie loupé
un truc.
--
Cordialement,
Pascal
Pardon de me répondre à moi-même, mais je viens de voir une autre
possibilité que le "evil/eval" !
En fait, on peut cloner le contenu dans un nouvel élément <script> créé
dynamiquement et ajouté dans le DOM.
Par exemple, on aurait le source HTML suivant, dont le deuxième script
permet de récupérer les paramètres du premier en les stockant dans
l'objet "extParams" :
<html>
<head>
<title>Test JS</title>
{"message": "coucou !"}
</script>
</head>
<body>
<p>Valeur à récupérer : <span id="msg"></span></p>
<script>
var scriptTags = document.getElementsByTagName("script");
for (var i=0, len = scriptTags.length; i < len; i++) {
if (! scriptTags[i].src) continue;
if (scriptTags[i].src.indexOf("params.js") >= 0 ) {
var params = scriptTags[i].innerHTML;
var newScriptTag = document.createElement("script");
newScriptTag.innerHTML = "var extParams = " +
params + ";";
scriptTags[i].parentNode.appendChild(newScriptTag);
}
}
</script>
</body>
</html>
Et le script externe "params.js", qui peut ainsi disposer des propriétés
de l'objet "extParams", ici pour en incorporer une ("message") dans le
document en cours :
window.onload = function() {
var msgString = extParams["message"];
var msgContainer = document.getElementById("msg");
msgContainer.innerHTML = msgString;
}
Testé FF 5.0 seulement.
C'est sûrement un truc comme ça que Google a dû bricoler dans cette
bibliothèque.
--
Cordialement,
Pascal
Moi je vois tout de suite ;-)
un seul .js dans le cache quelques soient les params
D'autant qu'on peut lire sur le Draft HTML5 :
Editor : Ian Hickson, Google, Inc
;-)
A+
Bol