Je reçois cette erreur Uncaught SyntaxError: Jeton inattendu < de chrome mais tout fonctionne correctement avec FireFox. J'ai trouvé beaucoup de messages similaires mais pas de solution. Donc, je me demande s'il y a un moyen d'envoyer une deuxième page au navigateur après qu'il a été construit, avec son propre en-tête. L'idée est venue, quand j'ai vu que Firefox place, ce que je fais écho dans la fonction ci-dessous, après la balise de fermeture html , par rapport à Chrome avant la balise de fermeture.Avec Chrome: Uncaught SyntaxError: Jeton inattendu <
Fondamentalement, je tiens à envoyer dans cet ordre:
header('Content-Type: text/html; charset= utf-8');
<html></html>
header('Content-Type: text/javascript; charset= utf-8');
<script></script>
Ceci est mon script php, je voudrais décommenter le code d'en-tête et l'envoyer indépendamment de la page html.
public static function jsShow($html)
{
//header('Content-Type: text/javascript; charset= utf-8');
echo "
<script type=\"text/javascript\">
var e = document.getElementById('message');
e.innerHTML = $html ;
e.style.display = 'block';
</script>";
}
C'est ce que la page ressemble dans Firefox, et cela fonctionne:
</body>
</html>
<script type="text/javascript">
var e = document.getElementById('message');
e.innerHTML = <ul style="list-style: none; margin: 0; padding: 0;">
<li style="background-color: #0000FF; margin: 0;"><img src="/asset/icon/info.gif" alt="Info: " /> working</li>
<li style="background-color: #008000; margin: 0;"><img src="/asset/icon/success.gif" alt="Success: " /> Got it</li>
</ul>
;
e.style.display = 'block';
</script>
Je pensais que je pourrais peut-être utiliser ob_start() & ob_end_flush(), mais vous ne pouvez pas contrôler les en-têtes avec seulement ce contenu.
Je ne pensais pas que cela fonctionnerait, et je ne comprends pas pourquoi, je l'ai juste essayé par désespoir, et YAHOOO – RoboTamer
Il profite du fait que toutes les valeurs JSON sont des littéraux JavaScript valides. –