我遇到的问题是我想在其他网站的网站上加载Javascript并在那里使用jQuery。但似乎jQuery永远不可用。 我尝试了这篇文章中的所有内容:Test if jquery is loaded not using the document ready event。
这可能是安全跨站问题吗?
这是页面: Japanese cities
jQuery在第29行加载
<script src="/cache/template/gzip.php?jquery.min-3eab6f02.js" type="text/javascript"></script>
脚本在第343行加载
<script type="text/javaScript" src="http://www.factfish.com/api/js/japanese_cities.js"></script>
为了缩小范围,我只使用了一个空的$ ajax函数
(function() {
if (jQuery) {
$.ajax({});
}
})();
我总是收到错误
TypeError:$ .ajax不是函数
有什么想法吗?
谢谢
哈德
答案 0 :(得分:0)
在你的页面中有
<script src="/cache/template/gzip.php?jquery-noconflict-4baa84c1.js" type="text/javascript"></script>
这样做:
jQuery.noConflict();
这意味着你
放弃jQuery对$ variable
的控制
即。 $
不再与jQuery相关联,您必须明确使用jQuery
。
请参阅:https://api.jquery.com/jquery.noconflict/
这应该有效:
(function() {
if (jQuery) {
jQuery.ajax({});
}
})();
另一种方法:
(function( $ ) {
$(function() {
// More code using $ as alias to jQuery
$.ajax({});
});
})(jQuery);
答案 1 :(得分:0)
正如@dekkard
所指出的,您已经有效地删除了jQuery的$
快捷方式别名。
作为@dekkard
所示的IIFE的替代方案,还有一个快捷方式DOM,它将document.ready与本地范围的$
e.g。
jQuery(function($){
// Your DOM ready code - using a locally scoped $
});
&#34;代码的一半,味道的两倍!&#34; :)