12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no">
- <link rel="shortcut icon" href="<%= BASE_URL %>favicon.ico">
- <title>
- <%= VUE_APP_TITLE %>
- </title>
- </head>
- <body>
- <noscript>
- <strong>
- 请开启 JavaScript 功能来使用 <%= VUE_APP_TITLE %>。
- </strong>
- </noscript>
- <iframe id='IEIframe' style='display: none;' width="100%" height="100%" src="/static/ie.html"
- frameborder="0"></iframe>
- <div id="app">
- </div>
- </body>
- <script>
- var $tar = document.querySelector('title')
- var MutationObserver = window.MutationObserver ||window.webkitMutationObserver ||window.MozMutationObserver;
- var mutationObserver = new MutationObserver((mutations) => {
- console.log(mutations,'标题变动')
- })
- mutationObserver.observe($tar, {
- childList: true, // 子节点的变动(新增、删除或者更改)
- attributes: true, // 属性的变动
- characterData: true, // 节点内容或节点文本的变动
- subtree: true, // 是否将观察器应用于该节点的所有后代节点
- attributeFilter: ['class', 'style'], // 观察特定属性
- attributeOldValue: true, // 观察 attributes 变动时,是否需要记录变动前的属性值
- characterDataOldValue: true // 观察 characterData 变动,是否需要记录变动前的值
- })
- function IEVersion() {
- var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
- var isIE =
- userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1; //判断是否IE<11浏览器
- if (isIE) {
- return true;
- } else {
- return false; //不是ie浏览器
- }
- }
- /* 如果是ie浏览器 */
- if (IEVersion()) {
- document.querySelector('#IEIframe').style.display = 'block'
- document.querySelector('#app').style.display = 'none'
- }
- // dataset 方法兼容 IE 浏览器。ie10及以下不支持dataset
- if (window.HTMLElement) {
- if (Object.getOwnPropertyNames(HTMLElement.prototype).indexOf('dataset') === -1) {
- Object.defineProperty(HTMLElement.prototype, 'dataset', {
- get: function() {
- var attributes = this.attributes // 获取节点的所有属性
- var name = []
- var value = [] // 定义两个数组保存属性名和属性值
- var obj = {} // 定义一个空对象
- for (var i = 0; i < attributes.length; i++) { // 遍历节点的所有属性
- if (attributes[i].nodeName.slice(0, 5) === 'data-') { // 如果属性名的前面5个字符符合"data-"
- // 取出属性名的"data-"的后面的字符串放入name数组中
- name.push(attributes[i].nodeName.slice(5));
- // 取出对应的属性值放入value数组中
- value.push(attributes[i].nodeValue);
- }
- }
- for (var j = 0; j < name.length; j++) { // 遍历name和value数组
- obj[name[j]] = value[j]; // 将属性名和属性值保存到obj中
- }
- return obj // 返回对象
- }
- })
- }
- }
- </script>
- </html>
|