使用 JQM 在桌面上进行测试不会产生这个问题,因此很难确定。
背景故事:我创建了服务器端代码 (php) 来接受查询字符串并直接打开图片库。但是,如果用户想在移动设备上浏览画廊时分享链接,尤其是某张照片;大多数移动浏览器共享核心链接,而不是实际照片。在事件中轻扫时很容易为带有照片 ID(例如 #photoID=987)的 URL 创建 URL 主题标签修饰符,但前提是画廊最初是在没有主题标签的情况下启动的。然后很容易与手机的本机方法共享。
(function(window, $, PhotoSwipe){
$(document).ready(function(){
//More Code is here but not needed fro this question
$(photoSwipeInstance).bind(PhotoSwipe.EventTypes.onDisplayImage, function(e){
var pid = codeThatGetsPhotoIDFromDisplayedIMGURL();
window.location.hash = '&pid='+pid[0];
});
if(getUrlVars()["pid"]!=null || getUrlVars()["pid"]!=undefined)
{
console.log(getUrlVars()["pid"]);
var photopid= getPhoto(getUrlVars()["pid"]);
photoSwipeInstance.show(photopid);
}
});//End Documentstrong text
}(window, window.jQuery, window.Code.PhotoSwipe));
function getUrlVars()
{
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
问题:如果画廊加载了主题标签,画廊将弹出正确的图像,但随后立即关闭幻灯片放映。并且在此之后的每张照片都以相同的方式执行,幻灯片打开然后关闭。
我已经关闭了 JQM 使用的所有 AJAX 和主题标签锚函数。此主题标签 url 功能在使用桌面浏览器时按预期工作,但在使用任何移动浏览器时不起作用。
有没有其他人尝试过这个功能?
我可能使这比我的描述更加混乱。
答: JQM 的标签处理程序不需要关闭。Photoswipe 需要将此处理程序添加到选项中:backButtonHideEnabled: false