5a207b395e
- 按钮文字「分享到微信/其他应用」→「分享到...」(用户需求) - 微信卡片分享(fluwx 6):WECHAT_APPID 经 --dart-define 注入;已配置且 装微信 → WXWebpage 卡片(标题=相册名、描述=日期·地点、缩略图=封面压缩 240px PNG ≤32KB、点击进观众链接);未配置/未装 → 回退系统分享面板 - viewer index.html 加站点级 og 标签(微信/QQ 抓取链接预览用;每相册动态 og 需服务端注入,登记后续增强) - 397/397 全绿、analyze 0 Co-Authored-By: Claude Code <noreply@anthropic.com>
2 lines
12 KiB
JavaScript
2 lines
12 KiB
JavaScript
(()=>{var Z=["left","right"],ve=["sm","md"],j=["auto","zh-CN","en"],be=["contain","cover"],p={position:"right",size:"md",intervalMs:5e3,lang:"auto",collapsedDefault:!1,imageFit:"contain",offsetX:16,offsetBottom:24,zIndex:1e3};var ye=3e3,Ie=3e4;var q=0,$=120,J=0,Q=240,Y=1,K=2147483e3,ee=["resize","collapse","expand","config","destroy"],F=195,C=280,Ee=8,ze=32,te=16,we=["carousel","vertical-stream"];function y(t,s,n){return t.indexOf(s)>=0?s:n}function I(t,s,n,f){let x=Number(t);return isNaN(x)||!isFinite(x)?f:Math.min(n,Math.max(s,Math.round(x)))}function c(t,s){let n=t[s];return n!=null&&n!==""}function Me(t){return!t||typeof t!="object"?null:{position:y(Z,t.position,p.position),size:y(ve,t.size,p.size),intervalMs:I(t.intervalMs,ye,Ie,p.intervalMs),lang:y(j,t.lang,p.lang),collapsedDefault:typeof t.collapsedDefault=="boolean"?t.collapsedDefault:p.collapsedDefault,imageFit:y(be,t.imageFit,p.imageFit),offsetX:I(t.offsetX,q,$,p.offsetX),offsetBottom:I(t.offsetBottom,J,Q,p.offsetBottom),zIndex:I(t.zIndex,Y,K,p.zIndex)}}function oe(t){let s=Number(t);return isNaN(s)||!isFinite(s)?te:Math.min(ze,Math.max(Ee,Math.round(s)))}function ne(t,s){let n=t||{},f=typeof n.slot=="string"?n.slot.replace(/^\s+|\s+$/g,""):"",x=!!(s&&s.narrow);return{version:2,slot:f||null,lang:c(n,"lang")?y(j,n.lang,p.lang):p.lang,position:c(n,"position")?y(Z,n.position,p.position):p.position,speed:c(n,"speed")?oe(n.speed):te,reactions:c(n,"reactions")?y(["on","off"],n.reactions,"on")==="on":!0,offsetX:c(n,"offsetX")?I(n.offsetX,q,$,p.offsetX):p.offsetX,offsetBottom:c(n,"offsetBottom")?I(n.offsetBottom,J,Q,p.offsetBottom):p.offsetBottom,zIndex:c(n,"zIndex")?I(n.zIndex,Y,K,p.zIndex):p.zIndex,pollMs:c(n,"poll")?I(n.poll,250,6e4,null):null,narrow:x,explicit:{lang:c(n,"lang"),position:c(n,"position"),speed:c(n,"speed"),reactions:c(n,"reactions"),offsetX:c(n,"offsetX"),offsetBottom:c(n,"offsetBottom"),zIndex:c(n,"zIndex")}}}function re(t){if(!t||typeof t!="object")return null;let s=Me(t);return s===null?null:{...s,displayMode:y(we,t.displayMode,"carousel"),scrollSpeed:oe(t.scrollSpeed),reactionsEnabled:typeof t.reactionsEnabled=="boolean"?t.reactionsEnabled:!0}}function ie(t,s){let n=re(s);if(n===null)return t;let f=t.explicit;return{...t,lang:f.lang?t.lang:n.lang,position:f.position?t.position:n.position,speed:f.speed?t.speed:n.scrollSpeed,reactions:f.reactions?t.reactions:n.reactionsEnabled,offsetX:f.offsetX?t.offsetX:n.offsetX,offsetBottom:f.offsetBottom?t.offsetBottom:n.offsetBottom,zIndex:f.zIndex?t.zIndex:n.zIndex}}function ae(t,s){if(!t||typeof t!="object")return null;let n=Number(t.configVersion);if(isNaN(n)||!isFinite(n))return null;let f=s==null?0:Number(s);if(n<=f)return null;let x=re(t.settings);return x===null?null:{configVersion:Math.round(n),settings:x}}function le(t,s,n){let f=t+"/embed/"+encodeURIComponent(s)+"?v=2&lang="+encodeURIComponent(n.lang)+"&pos="+encodeURIComponent(n.position);return n.explicit.speed&&(f+="&speed="+String(n.speed)),n.explicit.reactions&&!n.reactions&&(f+="&reactions=off"),n.pollMs!==null&&n.pollMs!==void 0&&(f+="&poll="+String(n.pollMs)),f}var Se=ee.concat(["open-photo"]);(function(){"use strict";try{let V=function(e){try{return t.sessionStorage.getItem(s+e)==="1"}catch(o){return!1}},k=function(e,o){try{o?t.sessionStorage.setItem(s+e,"1"):t.sessionStorage.removeItem(s+e)}catch(r){}},N=function(e){try{return t.sessionStorage.getItem(s+e)!==null}catch(o){return!1}},fe=function(){if(document.currentScript&&document.currentScript.src)return document.currentScript;var e=document.querySelectorAll('script[src*="/embed/v2/loader.js"]');return e.length?e[e.length-1]:null},T=function(e){try{return new URL(e.src,t.location.href).origin}catch(o){return null}},B=function(e){if(e==="zh-CN")return!0;if(e==="auto")try{return/^zh/i.test(t.navigator.language||"")}catch(o){return!1}return!1},pe=function(e){var o=document.createElement("div");o.setAttribute("role","button"),o.setAttribute("tabindex","0"),o.setAttribute("aria-label",B(e.config.lang)?"\u5C55\u5F00\u7167\u7247\u7A97":"Show photo window");var r=o.style;r.position="fixed",r.height=f+"px",r.width="100px",r.boxSizing="border-box",r.borderRadius="22px",r.border="1px solid #e3eaf2",r.background="#ffffff",r.boxShadow="0 4px 16px rgba(15,23,42,0.125)",r.zIndex=String(e.config.zIndex),r.cursor="pointer",r.display="flex",r.alignItems="center",r.justifyContent="center",r.gap="8px",r.font='400 12px/1 system-ui, -apple-system, "Segoe UI", "PingFang SC", sans-serif',r.color="#32618e",r.whiteSpace="nowrap",o.innerHTML='<svg viewBox="0 0 24 24" width="16" height="16" aria-hidden="true" focusable="false" style="color:#1a73e8"><path fill="currentColor" d="M9 2 7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2h-3.17L15 2H9zm3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z"/></svg><span>'+(B(e.config.lang)?"\u7167\u7247":"Photos")+"</span>";function l(i){if(i.type==="keydown"){var a=i.key;if(a!=="Enter"&&a!==" "&&a!=="Spacebar")return;i.preventDefault()}e.userChoice=!0,A(e);try{e.frame.contentWindow&&e.frame.contentWindow.postMessage({photoliveEmbed:!0,type:"expand"},e.frameOrigin)}catch(d){}}return o.addEventListener("click",l),o.addEventListener("keydown",l),o},de=function(e){return e.collapsed?f:e.height},ue=function(e){return e.config.explicit.offsetX||e.offsetConfigured?e.config.offsetX:t.innerWidth<=599?12:16},D=function(e){var o=ue(e),r=t.innerWidth-o-8,l=t.innerHeight-e.config.offsetBottom-8;return{offsetX:o,width:Math.max(120,Math.min(F,r)),height:Math.max(160,Math.min(C,l)),operable:r>=x&&l>=se}},E=function(e){var o=D(e);e.height=o.height;var r=e.config.position==="left"?"left":"right",l=r==="left"?"right":"left",i=e.wrapper.style;if(e.collapsed||(i.display="block",i.width=o.width+"px",i.height=o.height+"px"),i.zIndex=String(e.config.zIndex),i[r]=o.offsetX+"px",i[l]="",i.bottom=e.config.offsetBottom+"px",i.bottom="calc("+e.config.offsetBottom+"px + env(safe-area-inset-bottom, 0px))",e.handle){var a=e.handle.style;a.zIndex=String(e.config.zIndex),a[r]=o.offsetX+"px",a[l]=""}return o},H=function(){for(var e={left:[],right:[]},o=0;o<v.length;o++){var r=v[o];e[r.config.position==="left"?"left":"right"].push(r)}for(var l=["left","right"],i=0;i<l.length;i++)for(var a=e[l[i]],d=0,g=0;g<a.length;g++){var h=a[g],u=g===0?h.config.offsetBottom:d+de(a[g-1])+n;g>0&&u+C>t.innerHeight&&L(h,!1),h.wrapper.style.bottom=u+"px",h.handle&&(h.handle.style.bottom=u+"px"),d=u}},z=function(){if(_!==null||typeof t.requestAnimationFrame!="function"){H();return}_=t.requestAnimationFrame(function(){_=null,H()})},L=function(e,o){e.collapsed||(e.collapsed=!0,e.wrapper.style.display="none",e.handle||(e.handle=pe(e),document.body.appendChild(e.handle),E(e)),e.handle.style.display="flex",o!==!1&&k(e.config.slot,!0))},w=function(e,o){L(e,o),z()},A=function(e){e.collapsed&&(e.collapsed=!1,E(e),e.handle&&(e.handle.style.display="none"),k(e.config.slot,!1),z())},ce=function(e){if(!e.destroyed){e.destroyed=!0,e.handle&&e.handle.parentNode&&e.handle.parentNode.removeChild(e.handle),e.wrapper.parentNode&&e.wrapper.parentNode.removeChild(e.wrapper);try{t.sessionStorage.removeItem(s+e.config.slot)}catch(r){}var o=v.indexOf(e);o>=0&&v.splice(o,1),delete X[e.config.slot],M(),v.length===0&&t.removeEventListener("message",U),z()}},M=function(){m!==null&&(m.parentNode&&m.parentNode.removeChild(m),m=null,t.removeEventListener("keydown",O))},O=function(e){e.key==="Escape"&&M()},me=function(e,o){if(!(typeof o!="string"||o==="")){var r;try{r=new URL(o)}catch(G){return}if(r.origin===e.frameOrigin){if(m===null){m=document.createElement("div");var l=m.style;l.position="fixed",l.inset="0",l.zIndex=String(e.config.zIndex+1),l.background="rgba(9, 14, 20, 0.6)",l.display="flex",l.alignItems="center",l.justifyContent="center",l.padding="16px",m.addEventListener("pointerdown",function(G){G.target===m&&M()});var i=document.createElement("div"),a=i.style;a.position="relative",a.width="min(92vw, 420px)",a.height="min(86vh, 640px)",a.borderRadius="12px",a.border="1px solid rgba(255,255,255,0.80)",a.background="#10161e",a.boxShadow="0 12px 40px rgba(15,23,42,0.35)",a.overflow="hidden";var d=document.createElement("iframe");d.setAttribute("sandbox","allow-scripts allow-popups allow-popups-to-escape-sandbox allow-same-origin"),d.setAttribute("referrerpolicy","no-referrer-when-downgrade"),d.setAttribute("title","PhotoLive photo detail");var g=d.style;g.width="100%",g.height="100%",g.border="0",g.display="block",i.appendChild(d);var h=document.createElement("button");h.type="button",h.setAttribute("aria-label",B(e.config.lang)?"\u5173\u95ED\u7167\u7247\u8BE6\u60C5":"Close photo detail");var u=h.style;u.position="absolute",u.top="6px",u.right="6px",u.width="44px",u.height="44px",u.border="0",u.background="transparent",u.color="#647084",u.cursor="pointer",u.padding="0";var S=document.createElement("span"),b=S.style;b.position="absolute",b.top="6px",b.right="6px",b.width="24px",b.height="24px",b.borderRadius="50%",b.background="rgba(255,255,255,0.82)",b.display="flex",b.alignItems="center",b.justifyContent="center",S.textContent="\xD7",S.style.fontSize="19px",S.style.lineHeight="1",h.appendChild(S),h.addEventListener("click",M),i.appendChild(h),m.appendChild(i),document.body.appendChild(m),t.addEventListener("keydown",O),m.__frame=d,h.focus()}m.__frame.setAttribute("src",r.href)}}},ge=function(e,o,r){e.backendVersion=o,e.offsetConfigured=!0,e.config=ie(e.config,r),E(e),!e.userChoice&&!N(e.config.slot)&&(r.collapsedDefault?w(e,!1):he(e)||A(e)),z()},he=function(e){return!D(e).operable},xe=function(e,o){var r=document.createElement("div"),l=r.style;l.position="fixed",l.width=F+"px",l.height=C+"px",l.borderRadius="12px",l.border="1px solid rgba(255,255,255,0.80)",l.boxShadow="0 4px 16px rgba(15,23,42,0.16)",l.background="#10161E",l.overflow="hidden",l.setProperty("box-sizing","border-box","important");var i=document.createElement("iframe");i.setAttribute("sandbox","allow-scripts allow-popups allow-popups-to-escape-sandbox allow-same-origin"),i.setAttribute("src",le(e,o.slot,o)),i.setAttribute("referrerpolicy","no-referrer-when-downgrade"),i.setAttribute("title","PhotoLive photos");var a=i.style;a.width="100%",a.height="100%",a.border="0",a.display="block",a.setProperty("border","0","important"),a.setProperty("width","100%","important"),a.setProperty("height","100%","important"),a.setProperty("display","block","important"),r.appendChild(i),document.body.appendChild(r);var d={config:o,wrapper:r,frame:i,frameOrigin:T(i)||e,height:C,collapsed:!1,narrow:o.narrow,handle:null,userChoice:!1,backendVersion:0,offsetConfigured:o.explicit.offsetX,destroyed:!1};v.push(d);var g=E(d);return N(o.slot)?V(o.slot)&&w(d,!1):(d.narrow||!g.operable)&&w(d,!1),d},U=function(e){try{var o=e.data;if(!o||o.photoliveEmbed!==!0)return;var r=o.type;if(Se.indexOf(r)<0)return;for(var l=0;l<v.length;l++){var i=v[l];if(!(!i.frame.contentWindow||e.source!==i.frame.contentWindow)){if(e.origin!==i.frameOrigin)return;if(r==="collapse")i.userChoice=!0,w(i,!0);else if(r==="expand")i.userChoice=!0,A(i);else if(r==="config"){var a=ae(o,i.backendVersion);a!==null&&ge(i,a.configVersion,a.settings)}else r==="destroy"?(ce(i),M()):r==="open-photo"&&me(i,o.url);return}}}catch(d){}},R=function(){try{return!!t.matchMedia&&t.matchMedia("(max-width: 479px)").matches}catch(e){return!1}},P=function(){for(var e=R(),o=0;o<v.length;o++){var r=v[o];r.narrow!==e&&(r.narrow=e,e&&!r.userChoice&&!N(r.config.slot)&&w(r,!1)),E(r)}z()},W=function(){var e=fe();if(e){var o=T(e);if(o){for(var r=R(),l=document.querySelectorAll('script[src*="/embed/v2/loader.js"]'),i=0;i<l.length;i++){var a=ne(l[i].dataset,{narrow:r});a.slot&&(X[a.slot]||(X[a.slot]=!0,xe(o,a)))}t.addEventListener("message",U),t.addEventListener("resize",P),t.addEventListener("orientationchange",P)}}};var t=window;if(t.__photoliveEmbedV2)return;t.__photoliveEmbedV2="1";var s="pl-embed-collapsed:",n=12,f=44,x=150,se=200,v=[],X={},_=null,m=null;document.body?W():document.addEventListener("DOMContentLoaded",W)}catch(V){}})();})();
|