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) | |||
|  |   } | |||
|  | })() |