Exécuter dynamiquement injecté javascript dans les DOM chargé via AJAX (en essayant de ajaxify site web avec history.js)
J'ai une application web qui a essentiellement pour l'en-tête, pied de page et le corps de vues. Je suis en train de travailler sur ajaxifying le site web, à l'aide de la history.js bibliothèque et HTML5 pushstate, mais l'un des problèmes que je suis en train de vivre est d'obtenir le javascript intégré à exécuter lorsque le javascript est inséré dans le DOM.
À peu près tous mon javascript est enveloppé dans jQuery(function(){ ... }) (document sur les prêts loader)
Personne ne sait une bonne stratégie pour faire face à cela? Merci!
OriginalL'auteur Casey Flynn | 2012-05-23
Vous devez vous connecter pour publier un commentaire.
Si je vous comprends, votre "page" est juste un conteneur pour HTML vous êtes en train de charger dynamiquement. Dans ce HTML JavaScript blocs de script qui, actuellement, n'est pas exécuté. Est-ce exact? Sont-ils dans les scripts de la page ou des liens vers de nouveaux fichiers de script?
En tout cas, je pense que cela répond à votre question: Comment voulez-vous exécuter un chargé dynamiquement en JavaScript bloc?
Mes propres pensées:
À moins que votre conteneur est incroyablement générique, et ne peut donc pas savoir ce que JavaScript vous pourriez avoir besoin, l'approche la plus simple est probablement de simplement joindre manuellement tous vos JavaScript à votre conteneur de la page, afin qu'il se charge avec le conteneur, peut-être minimisé et concaténés dans un seul fichier.
Si vous avez besoin de charger vos scripts de manière dynamique, mais vous savez ce qu'ils sont, vous pouvez le faire avec jQuery en utilisant .getScript() ou .ajax(). Je pensais que cette page orthographié les choses bien, http://www.electrictoolbox.com/jquery-dynamically-load-javascript-file/ .
De même, si vous ne savez pas quoi scripts dont vous avez besoin jusqu'à ce que, après vous prenez votre bloc html, vous pourriez probablement analyser le code html pour le script de liens et de les fixer manuellement par l'intermédiaire de nouveaux éléments de script ajouté à la page. Par exemple, le script ci-dessous ajoute jQuery pour la page si elle n'existe pas déjà.
Qui semble agréable et facile. Bonne chance!
OriginalL'auteur jatrim
utilisation .sur, je n'allons pas expliquer al le comportement de cette fonction, mais en quelques mots:
travail par le bouillonnement des éléments du dom par exemple vous lier "onclick" à un div que vous pouvez définir pour tous ou certains de ses enfants ont x comportement
OriginalL'auteur osdamv