1、企業微信電腦端無法使用jsapi預覽
如上圖,即便有previewImage也不可以使用,需要自己使用預覽圖片插件
2、為了解決這個問題,在網上找了一個簡易版的js 代碼
地址:
該代碼,基本上可以使用,但是有個問題是在手機端點擊后會發馬上隱藏,需要阻止冒泡,並判斷顯示完畢后才允許點擊關閉,完善后代碼如下
<div id="outerdiv" style="position: fixed; top: 0; left: 0; background: rgba(0, 0, 0, 0.8); z-index: 2; width: 100%; height: 100%; display: none;"> <div id="innerdiv" style="position: absolute;"> <img id="bigimg" style="border: 5px solid #fff;" src=""/> </div> </div>
var _this = $("#txt" + p_id); imgShow("#outerdiv", "#innerdiv", "#bigimg", _this); //wx.previewImage({ // current: p_url, // 當前顯示圖片的http鏈接 // urls: pictures // 需要預覽的圖片http鏈接列表 //});
var isShow = false; function imgShow(outerdiv, innerdiv, bigimg, _this) { var src = _this.attr("value");//獲取當前點擊的pimg元素中的src屬性 $(bigimg).attr("src", src);//設置#bigimg元素的src屬性 /!*獲取當前點擊圖片的真實大小,並顯示彈出層及大圖*!/ $("<img/>").attr("src", src).load(function () { var windowW = $(window).width();//獲取當前窗口寬度 var windowH = $(window).height();//獲取當前窗口高度 var realWidth = this.width;//獲取圖片真實寬度 var realHeight = this.height;//獲取圖片真實高度 var imgWidth, imgHeight; var scale = 0.8;//縮放尺寸,當圖片真實寬度和高度大於窗口寬度和高度時進行縮放 if (realHeight > windowH * scale) { imgHeight = windowH * scale; imgWidth = imgHeight / realHeight * realWidth; if (imgWidth > windowW * scale) { imgWidth = windowW * scale; } } else if (realWidth > windowW * scale) { imgWidth = windowW * scale; imgHeight = imgWidth / realWidth * realHeight; } else { imgWidth = realWidth; imgHeight = realHeight; } $(bigimg).css("width", imgWidth);//以最終的寬度對圖片縮放 var w = (windowW - imgWidth) / 2;// 計算圖片與窗口左邊距 var h = (windowH - imgHeight) / 2;// 計算圖片與窗口上邊距 $(innerdiv).css({ "top": h, "left": w });//設置#innerdiv的top和left屬性 $(outerdiv).fadeIn("fast", showmask);//淡入顯示#outerdiv及.pimg }); var e = window.event || arguments.callee.caller.arguments[0]; stopBubble(e); $(outerdiv).click(function () { if(isShow) $(this).fadeOut("fast"); isShow = false; }); } function showmask() { isShow = true; } function stopBubble(e) { //如果提供了事件對象,則這是一個非IE瀏覽器 if (e && e.stopPropagation) //因此它支持W3C的stopPropagation()方法 e.stopPropagation(); else //否則,我們需要使用IE的方式來取消事件冒泡 window.event.cancelBubble = true; }
想不通企業微信,既然不支持電腦端,何必要放出來這個接口。