jquery没有从另一个域加载脚本

时间:2015-05-07 09:26:38

标签: javascript jquery cross-domain

我遇到的问题是我想在其他网站的网站上加载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不是函数

有什么想法吗?

谢谢

哈德

2 个答案:

答案 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; :)