L'exécution de JavaScript de fichiers AJAX
-
09-10-2019 - |
Question
J'ai essayé d'obtenir ce au travail depuis des siècles maintenant, les charges essayé de SO / question des réponses mais pas geting très loin.
Je crois que j'avais à l'origine 2 questions, un qui espère que je l'ai résolu.
Je me sers JotForm (le créateur de forme facile que les utilisations prototype). Ce que j'est un menu de style facebook ( AjaxFlagMenu ) qui crée un menu de style verticle ajax qui tractions dans les extraits HTML à partir de fichiers externes (qui dans mon cas ont tous une forme JotForm là-bas).
A l'heure actuelle en haut de la page « principale » qui contient le menu, je:
<script src="http://cdn.jquerytools.org/1.2.5/jquery.tools.min.js"></script>
<script type="text/javascript" src="/js/jquery.corner.js"></script>
<script type="text/javascript" src="/js/jquery.flagmenu.js"></script>
<script type="text/javascript">
jQuery.noConflict();
jQuery(document).ready(function($){
var Menu = $("#_Menu").AjaxFlagMenu({
Caption:'Manage Profile',
CaptionClass:'CaptionClass',
onOutClass:'onOutClass',
onOverClass:'onOverClass',
onClickClass:'onClickClass',
hscOutClass:'hscOutClass',
hscClickClass:'hscClickClass',
Loading_gif:'/images/loading.gif',
ajaxContent:'ajaxContent'
});
//Basic
Menu.add({
Title:'Basic Info',
onOutIcon:'/images/icon-vcard-c.png',
onClickIcon:'/images/icon-vcard-d.png',
HtmlSatusContent:'',
url:'/instructor/pages/mp-basic.php',
data:''
});
//Profile Picture
Menu.add({
Title:'Profile Picture',
onOutIcon:'/images/icon-camera-c.png',
onClickIcon:'/images/icon-camera-d.png',
HtmlSatusContent:'',
url:'/instructor/pages/mp-photo.php',
data:''
});
//Pricing and Offers
Menu.add({
Title:'Pricing and Offers',
onOutIcon:'/images/icon-pound-c.png',
onClickIcon:'/images/icon-pound-d.png',
HtmlSatusContent:'',
url:'/instructor/pages/mp-pricing.php',
data:''
});
//Services
Menu.add({
Title:'Services',
onOutIcon:'/images/icon-services-c.png',
onClickIcon:'/images/icon-services-d.png',
HtmlSatusContent:'',
url:'/instructor/pages/mp-services.php',
data:''
});
//Bio and Additional
Menu.add({
Title:'Bio and Additional',
onOutIcon:'/images/icon-bio-c.png',
onClickIcon:'/images/icon-bio-d.png',
HtmlSatusContent:'',
url:'/instructor/pages/mp-bio.php',
data:''
});
$("#_td").corner("4px");
});
</script>
<script src="/js/jotform/prototype.js?v=3.1.92" type="text/javascript"></script>
<script src="/js/jotform/protoplus.js?v=3.1.92" type="text/javascript"></script>
<script src="/js/jotform/protoplus-ui.js?v=3.1.92" type="text/javascript"></script>
<script src="/js/jotform/jotform.js?v=3.1.92" type="text/javascript"></script>
<script src="/js/jotform/calendarview.js?v=3.1.92" type="text/javascript"></script>
Ce que je dois faire alors, est lorsque l'élément de menu est cliqué et charge le HTML de l'autre page, je dois exécuter JotForm.init();
pour activer les fonctions de validation de JotForm. Cependant, je ne semble même pas être en mesure de alert("Hello World");
au travail sur la page qui est appelé.
Toute aide serait génial! Merci!
La solution
Dans les AjaxFlagMenu.js, à la ligne Ajax est exécutée:
//Ajax
var _XMLHTTPRequest = $.ajax({type: "GET",url:_url,data:_data });
Essayez d'ajouter dataType: "html"
comme ceci:
//Ajax
var _XMLHTTPRequest = $.ajax({type: "GET",url:_url,data:_data,dataType: "html" });
Cette wil évaluer le javascript vous chargez via AJAX.
Vous trouverez plus d'informations ici: http://api.jquery.com/jQuery. ajax / # Options
PLUS TARD EDIT
Le problème est que le AjaxFlagMenu n'évalue le javascript de la réponse ajax!
Autres conseils
Utilisez le code JotForm Iframe à la place. Voici comment vous pouvez l'obtenir. Ouvrez votre formulaire sur le formulaire JotForm Constructeur:
- Ouvrir l'onglet "Configuration et partage" à la barre d'outils,
- Cliquez sur "Partager le formulaire"
- Cliquez sur "Options avancées"
- Cliquez sur « Code iFrame » et copiez le code du formulaire sur votre site.