Fonction Javascript possible dans data_uri ?

WRInaute accro
Bonjour

Je cherche à mettre tous mes scripts Javascript en mode inline, et l'attribut defer.

Voici le code html :

Code:
<script type="text/javascript" src="data:text/javascript;base64,BYTE_BASE64" defer></script>

Mais je voudrais générer le contenu base64 avec la fonction ci-dessous :

Code:
<script type="text/javascript" src="data:text/javascript;base64,btoa(encodeURIComponent('code_javacript').replace(/%([0-9A-F]{2})/g, function(match, p1) { return String.fromCharCode('0x' + p1); }));" defer></script>

'code_javascript' est le code du script Javascript.

C'est possible de mettre une fonction de cette façon ?

Merci beaucoup de votre aide.

Amicalement.
 
WRInaute accro
Rebonjour

J'étais une buse.

Je peux utiliser la fonction php : base64_encode() pour encoder la data: uri javascript.

Code:
function affic_javascript($code_javascript) {
        $mime_type = "text/javascript";
        $str = "<script type=\"" . $mime_type . "\" src=\"data:" . $mime_type . ";base64," . base64_encode($code_javascript) . "\" defer></script>\n";
        return($str);
}

J'ai encore deux problèmes : 1) les document.write() et 2) les paramètres d'url dans $code_javascript.

1) Mon système de notation,

2) Le script tarteaucitron.

Je vais mettre des document.getElementById(id).innerHTML=value; au lieu du document.write(value), mais comment coder les paramètres d'url à l'intérieur du base64 ?

Merci beaucoup de votre aide.

Respectueusement.
 
WRInaute accro
Bon

Voilà, j'ai mis tout mon site en mode javascript uri data:base64 inline, sauf le script tarteaucitron qui me donnait une erreur ( url malformée ) à cause de base64, et le code de Google Analytics.

Vais voir ce que Google en pense après le week-end.

Faut encore que j'adapte mon site à mon orm dur dur. ;)

Respectueusement.
 
Discussions similaires
Haut