40 lines
1.4 KiB
JavaScript
40 lines
1.4 KiB
JavaScript
|
(function () {
|
|||
|
function install (Vue) {
|
|||
|
var setWechatTitle = function (title, img) {
|
|||
|
if (title === undefined || window.document.title === title) {
|
|||
|
return
|
|||
|
}
|
|||
|
document.title = title
|
|||
|
var mobile = navigator.userAgent.toLowerCase()
|
|||
|
if (/iphone|ipad|ipod/.test(mobile)) {
|
|||
|
var iframe = document.createElement('iframe')
|
|||
|
iframe.style.display = 'none'
|
|||
|
// 替换成站标favicon路径或者任意存在的较小的图片即可,支付宝小程序引用默认空白的base64图片会有安全警告
|
|||
|
var _img = /alipay/.test(mobile) ? img : (img || 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7');
|
|||
|
_img && iframe.setAttribute('src', _img)
|
|||
|
var iframeCallback = function () {
|
|||
|
setTimeout(function () {
|
|||
|
iframe.removeEventListener('load', iframeCallback)
|
|||
|
document.body.removeChild(iframe)
|
|||
|
}, 0)
|
|||
|
}
|
|||
|
iframe.addEventListener('load', iframeCallback)
|
|||
|
document.body.appendChild(iframe)
|
|||
|
}
|
|||
|
}
|
|||
|
Vue.directive('wechat-title', function (el, binding) {
|
|||
|
setWechatTitle(binding.value, el.getAttribute('img-set') || null)
|
|||
|
})
|
|||
|
}
|
|||
|
|
|||
|
if (typeof exports === 'object') {
|
|||
|
module.exports = install
|
|||
|
} else if (typeof define === 'function' && define.amd) {
|
|||
|
define([], function () {
|
|||
|
return install
|
|||
|
})
|
|||
|
} else if (window.Vue) {
|
|||
|
Vue.use(install)
|
|||
|
}
|
|||
|
})()
|