我在管理管理页面时遇到了一些困难,我经常在 Chrome 中看到“Aw Snap”。
我有一个“商品”管理页面,您可以在其中向网站添加新产品。
如果用户选择“T 恤”作为产品类型,则会出现一些新选项。即大小和颜色。
大小只是一个多选框,但单击“添加颜色”会初始化一个阴影框。
阴影框允许用户输入颜色名称并选择十六进制颜色(通过Wheel Color Picker插件)并上传代表图像(通过Uploadify)。在提交时,Uploadify 脚本会上传文件,然后在完成后脚本通过 JQuery AJAX 将其他颜色信息发送到数据库。
提交按钮脚本:
function add_colour_submit(){
$('#admin-add-colour-response').text('Processing...').fadeIn(1000);
$('#admin-add-colour-image').uploadifySettings('scriptData', {
'title': $('#admin-add-colour-title').val(),
'hex': $('#admin-add-colour-hex').val(),
'gender': $('#admin-add-colour-gender').val()
});
$('#admin-add-colour-image').uploadifyUpload();
}
上传“完成时”:
'onComplete': function (event, ID, fileObj, response, data) {
$("#admin-add-colour-response").fadeTo(200,0.1,function(){
$("#admin-add-colour-response").html('Complete.').fadeTo(900,1,
function()
{
var responseArray = response.split(',');
var id = responseArray[0];
var title = responseArray[1];
var hex = responseArray[2];
var gender = responseArray[3];
parent.get_colour(id, title, hex, gender);
});
});
}
AJAX 操作完成后,会显示一条反馈消息“完成”。
这段时间之后,JQuery 代码以编程方式关闭 shadowbox,并在父页面上创建一个小 div 来表示提交的颜色。
使用此方法可以添加多个。
获取颜色函数:
function get_colour(id, title, hex, gender){
$('#sb-nav-close').click(); //trigger shadowbox close
//create colour object div
var colourObject = '<div class="colourObject"><div class="colourPreview" style="background:#'+hex+'"></div><div class="colourInfo"> '+title+' / '+gender+'</div><div class="colourRemove"><a href="#" onclick="remove_colour('+id+')">x</a></div</div>'
var currentList = $('#colour-list').html();
$('#colour-list').html(currentList+colourObject);
//re-initialise any shadowbox links in the page
Shadowbox.init({
skipSetup: false
});
Shadowbox.setup();
}
我的问题是,在上述功能期间,也许在关闭影子盒期间,我在 Chrome 中得到了一个 Aw Snap。上面颜色 div 的屏幕截图是使用 Safari 制作的,我从来没有遇到任何问题。
我有几个插件(shadowbox、wheel color picker、uploadify、jquery),所以这些插件的冲突会导致错误吗?
更新。
我刚刚设法在更多浏览器中对此进行了测试,这绝对是仅与 Chrome 相关的问题。