我在我的页面中使用 Dynamic Drive Jquery 图像放大器 http://www.dynamicdrive.com/dynamicindex4/imagemagnify.htm 。
我在两个独立的域上加载了页面 - 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可以写在一个很小的东西的背面。为什么它在一个域上有效,而在另一个域上无效?
最佳答案
检查两台机器是否都有互联网。您可以访问http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js来自两台机器。此错误的原因是,当您尝试调用 magnify 时,jQuery 未加载。所以你不能在没有 jQuery 的情况下调用插件。或者如果你在插件之后注册jquery,它将重置所有已经加载的插件
关于javascript - Jquery 适用于一个域,不适用于另一个域 - 使用*相同的*代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8833339/