【发布时间】:2019-02-23 04:07:47
【问题描述】:
情况在 Chrome 中还可以,在 IE11 中也可以
设置“transfer”(false) 和“inner”(true) 后,Drawer 的工作方式如下:
使用IE10时出现问题
抽屉显示在标签外面而不是里面。
并且drawer的html代码已经放到了它的父标签之外
【问题讨论】:
标签: vue.js compatibility internet-explorer-10 iview
设置“transfer”(false) 和“inner”(true) 后,Drawer 的工作方式如下:
抽屉显示在标签外面而不是里面。
并且drawer的html代码已经放到了它的父标签之外
【问题讨论】:
标签: vue.js compatibility internet-explorer-10 iview
我找到了问题解决方案。(iview 3.2.2)
iview/src/directives/tansfer-dom.js
这个 js 文件处理 DOM 转移作业,这导致抽屉面板转移到父 DOM 之外。
inserted (el, { value }, vnode) {
if ( el.dataset && el.dataset.transfer !== 'true') return false;
el.className = el.className ? el.className + ' v-transfer-dom' : 'v-transfer-dom';
const parentNode = el.parentNode;
if (!parentNode) return;
const home = document.createComment('');
let hasMovedOut = false;
if ( value !== false) {
parentNode.replaceChild(home, el); // moving out, el is no longer in the document
getTarget(value).appendChild(el); // moving into new place
hasMovedOut = true
}
if (!el.__transferDomData) {
el.__transferDomData = {
parentNode: parentNode,
home: home,
target: getTarget(value),
hasMovedOut: hasMovedOut
}
}
},
如文件所示
如果(值!== 假)
第 9 行的判断没有被挪用。
如下替换代码并运行'npm run dist'重建iview,
如果(值 && 值!== 假)
抽屉在 IE10 中显示良好
【讨论】: