词条信息

admin
admin
超级管理员
词条创建者 发短消息   

相关词条

热门词条

更多>>
什么是端口?到底是做什么的呢?
端口一般指两种,一种是硬件比如路由器或者交换机的插网线的端口,一种是软件的逻辑的概念,比如http的80端口!...
7种进阶方法让你快速测试端口连通性
Ping是Windows、Linux和Unix系统下的一个检查网络连通性的命令工具,对于大部分互联网用户来说很...
电脑开机,总需要按F1,是什么原因造成的?
一.主板掉电这个说法是行业内的叫法了,一般是主板的CMOS电池没电了导致的。也是最常见的一种提示你按F1的提示...
社保降费对个人有什么影响?
下调城镇职工基本养老保险单位缴费比例是政府给企业发的一个大红包,特别是对于企业来说是一个利好,但是对个人来说有...
车辆“出险”对下年保费的影响,到底有多大?
【出险对交强险的影响】【出险对商业险的影响】车辆“出险”对下年保费的影响,到底有多大?这里有必要先提下车险第三...

精选图集

更多>>
简易百科旧版 >>所属分类 >> HDWIKI   

HDwiki点击浏览大图功能第一个图片以后无法显示大图

标签: HDwiki 无法显示大图

顶[1] 发表评论(0) 编辑词条

bug描述:


后台管理图片插件的列表(admin_image.htm),点击缩略图片显示大图的功能:只有第一个图片的大图显示正常,第二个及以后的其它图片都是无限载入,无法显示了。


 查bug过程:


查图片悬停的文字,找到admin_image.htm


页首的js段落里面有如下内容


$(document).ready(function(){

$("img").each(function(i){

var img = this; 

img.title="点击浏览大图";

}).click(function(){

var url=$(this).attr("src");

$.dialog.open('image', '图片浏览', 'img:'+url);

});


 先检测url的正确性:在url变量后面加一句“alert(url);”。发现没有问题。


那么就是document.ready()可能出问题了;全站查找document.ready(),发现是一个js文件里面的东西,/js/jquery.dialog.js


打开之后进行alert检查问题,都无效。莫非,用的不是这个?


在此全站查找jquery.dialog,发现还有两个文件,一个是jquery.dialog-0.8.js、一个是jquery.dialog-0.8.min.js。继续查找,发现header实际调用的是jquery.dialog-0.8.min.js这个文件。


打开后发现根本无法编辑,为了减小文件大小,把所有的注释都去掉了,还将所有的中文改成了utf8码。


于是改admin_header为引用jquery.dialog-0.8.js,编辑之后发现

if (options.type == 'url'){

url = options.url;

if (self.config.url == url){

self.show(id);

return self;

}

self.config.url = url;

self.setContent(id, self.config.htmlImgLoading);

$.get(url, function(data, state){

if (self.isClose[id]){return}

if (state == 'success'){

self.setContent(id, data);

self.reset(id);

if($.IE) self.reset(id, 200);

if ($.isFunction(options.callback)){options.callback(dialog)}

}else {

self.setContent(id, "Loading failure!");

}

});

}else if (options.type == 'img'){

url = options.url;

if (self.config.url == url){

self.show(id);

return self;

}

self.config.url = url;

self.setContent(id, self.config.htmlImgLoading);

var pos = self.getPosition(id);

dialog.css({top:pos.top,left:pos.left,opacity:''});



var img = new Image();

img.onload = function(){

//if (self.isClose[id]){return} 被我注释掉了,以正常显示网站的大图

var width = img.width >950 ?950 : img.width;

self.setContent(id, '');

self.reset(id);

if($.IE) self.reset(id, 200);

if ($.isFunction(options.callback)){options.callback(dialog)}

}

img.onerror = function(){self.setContent(id, options.error)}

img.src= url;



self.parts[id].content.dblclick(function(){$.dialog.close(id)});



}else if(options.type == 'iframe'){......后略


显然options.type == 'img'这一段是重点关注对象!


 对与type为img的,指定url。


判断url是不是现在的url,如果是,直接打开即可。


指定url,指定css样式,实例化图像文件,加载图像。


加载图像时,有一条语句是判断self是不是关闭。如果关闭,就直接返回。


if (self.isClose[id]){return}


我使用alert测试,不管怎麽测试,除了第一个图片,后面的都是为真,这里img.onload就直接return了。后面的就自然没有任何反应了。


我想不明白为什么要加这个判断条件。所以还是直接把这条注释掉了,bug解除。


 解决办法:


注释掉“if (self.isClose[id]){return}”即可

 

 

附件列表


按字母顺序浏览:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

→我们致力于为广大网民解决所遇到的各种电脑技术问题
 如果您认为本词条还有待完善,请 编辑词条

上一篇hdwiki无法上传图片
下一篇

1
1. 本站部分内容来自互联网,如有任何版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
2. 本站内容仅供参考,如果您需要解决具体问题,建议您咨询相关领域专业人士。
3. 如果您没有找到需要的百科词条,您可以到百科问答提问或创建词条,等待高手解答。

关于本词条的提问

查看全部/我要提问>>