我遇到了 Photoswipe 画廊的问题。我遇到的问题是,我单击缩略图,整个页面及其控件以及图像正在加载,然后只显示一个空白页面。
这只发生在我的移动设备(android 4.0.4)上,无论是在标准浏览器中还是在 chrome 中。但是我笔记本电脑上的 Firefox 和 chrome 都可以正常工作。
我附加了 chrome 远程调试器,一切似乎都正常。
在 chrome mobile 上,url-hash#&ui-state=dialog
在 android 标准浏览器、桌面 chrome 和 firefox 中更改为 hash 不会改变并显示#pageid
.
我试图调试代码,但我无法找出问题所在。
图库标记是在pagebeforechange
事件中注入的。并且Photoswipe初始化如下:
(function(window, $, PhotoSwipe){
$(document).ready(function(){
console.log('document ready')
$('div.gallery-page').live('pageshow', function(e){
console.log('pageshow');
var currentPage = $(e.target);
var options = { enableMouseWheel: false , enableKeyboard: false };
var photoSwipeInstance = $("ul.gallery a", e.target).photoSwipe(options, currentPage.attr('id'));
console.log(e.target);
return true;
}).live('pagehide', function(e){
var currentPage = $(e.target),
photoSwipeInstance = PhotoSwipe.getInstance(currentPage.attr('id'));
if (typeof photoSwipeInstance != "undefined" && photoSwipeInstance != null) {
PhotoSwipe.detatch(photoSwipeInstance);
}
return true;
});
});
}(window, window.jQuery, window.Code.PhotoSwipe));
任何关于为什么页面变为空白的想法,仅在移动设备上?
//编辑我目前的解决方法是在 pagebeforechange 事件上这样做:
if(window.location.hash.search(/ui-state=dialog/) !== -1 ) {
console.log('ui-state anomaly');
e.preventDefault();
}