photoswipe - 如何使自定义 pid 工作

photoswipe - how to make custom pid work

我正在用 photoswipe 构建网站,它很好并且有深度 linking 类型的实现,但是这个 pid gid 实现的唯一问题是如果有人 link 你的照片在某个地方使用哈希然后您将从图库中删除该照片,linkt 将指向另一张照片,该照片在图库中具有相同的 pid/索引...

网站上的 pid 总是取值 1,2,3,4,5,6,7,8

我试图以某种方式强制 photoswipe 从某些属性中获取 pid,或者至少在使用从自定义值到真实图像索引的一些映射之前解析它,但我有点失败...

有人尝试过这种实现并成功了吗?

提前谢谢

您可以查看 options documentation

摘自该页面,下面的摘录显示了如何自定义 urltextimage_urlraw_image_url 属性。 (您只需重写 getter 方法。)

// Share buttons
// 
// Available variables for URL:
// {{url}}             - url to current page
// {{text}}            - title
// {{image_url}}       - encoded image url
// {{raw_image_url}}   - raw image url
shareButtons: [
    {id:'facebook', label:'Share on Facebook', url:'https://www.facebook.com/sharer/sharer.php?u={{url}}'},
    {id:'twitter', label:'Tweet', url:'https://twitter.com/intent/tweet?text={{text}}&url={{url}}'},
    {id:'pinterest', label:'Pin it', url:'http://www.pinterest.com/pin/create/button/?url={{url}}&media={{image_url}}&description={{text}}'},
    {id:'download', label:'Download image', url:'{{raw_image_url}}', download:true}
],


// Next 3 functions return data for share links
// 
// functions are triggered after click on button that opens share modal,
// which means that data should be about current (active) slide
getImageURLForShare: function( shareButtonData ) {
    // `shareButtonData` - object from shareButtons array
    // 
    // `pswp` is the gallery instance object,
    // you should define it by yourself
    // 
    return pswp.currItem.src || '';
},
getPageURLForShare: function( shareButtonData ) {
    return window.location.href;
},
getTextForShare: function( shareButtonData ) {
    return pswp.currItem.title || '';
},

实际上自版本 a v4.0.8 photoswipe 支持自定义 pid