Тестирование на рабочем столе с помощью JQM не приводит к этой проблеме, поэтому ее трудно точно определить.
Предыстория: я создал код на стороне сервера (php), чтобы принять строку запроса и открыть галерею прямо на картинке. Но если пользователь хочет поделиться ссылкой при просмотре галереи на мобильном устройстве и, в частности, определенной фотографии; большинство мобильных браузеров используют основную ссылку, а не реальную фотографию. В событиях при пролистывании легко создать модификатор хэштега URL для URL-адреса с идентификатором фотографии (например, #photoID=987), но только если галерея изначально запущена без хэштегов. Затем легко поделиться с родными методами телефона.
(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;
}
Проблема. Если галерея загружена с хэштегом, в галерее появится правильное изображение, но затем слайд-шоу сразу же закроется. И каждая фотография после этой точки работает одинаково, слайд-шоу открывается, а затем закрывается.
Я отключил все функции AJAX и привязки хэштегов, которые использует JQM. Эта функция URL-адреса хэштега работает должным образом при использовании настольного браузера, но не при использовании любого мобильного браузера.
Кто-нибудь еще пробовал эту функцию?
Я, вероятно, сделал это намного более запутанным, чем в моем описании.
Ответ: вместо этого не нужно отключать обработчики хэштегов JQM. Фотосвайпу нужно, чтобы этот обработчик был добавлен в опции: backButtonHideEnabled: false