Les sites Web tiers peuvent placer mon tag de script sur leurs sites Web, comme par exemple ExternalSite.html dans la section head
(function () { var ttScript = document.createElement('script'); ttScript.async = true; ttScript.src = '//www.example.com/script/myscript.js'; (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(ttScript); })();
Sur mon propre serveur, dans le fichier myscript.js, j’ai ce code:
$.ajax({ url: "http://www.example.com/iplookup.php", data: null, type: 'GET', crossDomain: true, dataType: 'jsonp' }).done(function (json) { self.ip = json; });
Mais une fois qu’un utilisateur visite le site tiers, sur la première ligne, je reçois Uncaught ReferenceError: $ is not defined
Maintenant, c’est probablement parce que je ne fais pas référence à jQuery sur le site tiers, où j’inclus le fichier myscript.js. Le problème est que:
Commencez par vérifier le chargement de jQuery à l’aide de javaScript.
window.onload = function() { if (window.jQuery) { // jQuery is loaded // Now insert your scripts } else { // jQuery is not loaded // Load it manually from any cdn eg, //ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js } }
Nous pouvons utiliser d’autres méthodes de vérification similaires.
if (typeof jQuery != 'undefined') { // jQuery is loaded } else { // jQuery is not loaded } if (jQuery) { // jQuery is loaded } else { // jQuery is not loaded }
Atornblad propose un fiddle
fonctionnel qui indique également le temps de chargement de jQuery.
Vous pouvez regarder pour une meilleure référence.
J’espère que cela t’aides..