Jquery在一个域上工作,而不是另一个域 - 具有*相同的*代码

时间:2012-01-12 10:14:50

标签: javascript jquery dynamic drive

我在我的页面http://www.dynamicdrive.com/dynamicindex4/imagemagnify.htm中使用了Dynamic Drive Jquery图像放大镜。

我将页面加载到两个单独的域上 - HTML是相同的,所有链接(css / js / images)都是我的测试服务器的完整http字符串。标题如下所示:

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
    <script type="text/javascript" src="http://slim.bobpitch.com/DS/js/jquery.magnifier.js">

但是,在一个域上,页面加载完美,但jquery不起作用,在jquery工作的另一个域上,但页面格式化已损坏。我在第一页上得到的错误是:

    Uncaught TypeError: Cannot call method 'magnify' of undefined 

这是指这段剧本:

    jQuery.fn.imageMagnify=function(options){
var $=jQuery
return this.each(function(){ //return jQuery obj
    var $imgref=$(this)
    if (this.tagName!="IMG")
        return true //skip to next matched element
    if (parseInt($imgref.css('width'))>0 && parseInt($imgref.css('height'))>0 || options.thumbdimensions){ //if image has explicit width/height attrs defined
        jQuery.imageMagnify.magnify($, $imgref, options)
    }
    else if (this.complete){ //account for IE not firing image.onload
        jQuery.imageMagnify.magnify($, $imgref, options)
    }
    else{
        $(this).bind('load', function(){
            jQuery.imageMagnify.magnify($, $imgref, options)
        })
    }
})

我完全感到困惑,只有一个热心的CSS修补工具,我所知道的 java JavaScript可以写在一个非常小的东西背面。为什么它适用于一个域而不是另一个域?

3 个答案:

答案 0 :(得分:2)

检查两台机器上是否有互联网。你能从两台机器上访问http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js吗?出现此错误的原因是,当您尝试调用magnify时,未加载jQuery。所以你不能在没有jQuery的情况下调用插件。或者如果你在插件之后注册jquery,它将重置已经加载的所有插件

答案 1 :(得分:0)

我认为错误在magnify()调用中意味着放大镜在加载时出现问题

<script type="text/javascript" src="http://slim.bobpitch.com/DS/js/jquery.magnifier.js">

否则你会得到一个错误,抱怨jQuery不是一个函数,所以检查从域中加载该文件没有问题(如果脚本加载正确,请检查firebug)

答案 2 :(得分:0)

检查应用程序是否引用了不同版本的jquery文件