Aidez-moi à comprendre comment ajouter du javascript dans les pages mobiles accélérées (AMP). Mon exigence est que je reçois un identifiant dans l'URL. Par exemple, localhost: 8080/home? Id = 1.Je voudrais accéder à cet identifiant dans mon fichier html.
ou bien s'il vous plaît laissez-moi savoir comment ajouter un fichier javascript.
Je vous remercie.
Malheureusement, vous ne pouvez pas ajouter de scripts arbitraires dans AMP. De la spécification , sous "Balises HTML", pour la balise script
:
Interdit sauf si le type est
application/ld+json
. (D'autres valeurs non exécutables peuvent être ajoutées en fonction des besoins.) Exception est la balise de script obligatoire pour charger le moteur d'exécution AMP et les balises de script pour charger les composants étendus.
Donc, si vous voulez utiliser JavaScript depuis AMP, vous devez utiliser les components . Je ne vois pas un composant qui fait ce que vous voulez.
Autant que je sache, vous pouvez ajouter du Javascript à AMP en hébergeant le script AMP sur votre origine et en interceptant la demande d'obtention du script à l'aide d'un technicien. Cette technique s'appelle "AMP as PWA". Voici le code
function createCompleteResponse (header, body) {
return Promise.all([
header.text(),
getTemplate(RANDOM STUFF AMP DOESN’T LIKE),
body.text()
]).then(html => {
return new Response(html[0] + html[1] + html[2], {
headers: {
'Content-Type': 'text/html'
}
});
});
}
Plus d'explications ici: https://www.smashingmagazine.com/2016/12/progressive-web-amps/#amp-as-pwa
Le javascript personnalisé n'est pas autorisé sur les pages AMP et constitue l'un des principes fondateurs de l'AMP. Vous pouvez mettre un js personnalisé dans une amp-iframe, à condition que l'amp-iframe soit inscrit sur xdomain à partir de la page principale.
Javascript bloque la construction du DOM et retarde le rendu des pages. AMP n'autorise donc que le javascript javascript. Les pages AMP ne peuvent inclure aucun auteur écrit en JavaScript Au lieu d'utiliser JavaScript, les fonctionnalités de page interactives sont gérées dans des éléments AMP personnalisés.