gpt4 book ai didi

javascript - ie8 Bootstrap ownerDocument.defaultView为空

转载 作者:行者123 更新时间:2023-12-01 01:46:17 25 4
gpt4 key购买 nike

我在我的项目中使用了 bootstrap 的几个组件,但是其中两个组件“accordion”和“modal”在 IE8 中根本不起作用。根据 bootstrap 的文档,它支持 IE8,我假设 Accordion 和 modal 也应该可以工作。

  • Bootstrap 版本 - 3.1.0
  • jQuery 版本 - 1.11.0

Accordion 代码 -

     <div class='accordion-container'>
<div class='panel-group' id='accordion'>
<div class="panel panel-default">
<div id="panal_9" data-toggle="collapse" data-parent="#accordion" href="#collapse0" class="panel-heading" style="">
<h4 class="panel-title">Class 9</h4>
</div>
<div id="collapse0" class="panel-collapse collapse">
<div class="panel-body">
<div class="list-group">
<ul class="list-unstyled">
<li data-class="1" data-subject="2">English</li>
<li data-class="1" data-subject="1">Math</li>
<li data-class="1" data-subject="6">Social Science</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>

问题 -

在 IE8 上单击 Accordion 标题会引发错误 - 'ownerDocument.defaultView' 为 null 或不是对象

最佳答案

我意识到这个问题有点老了,所以我希望这不再是一个问题,但如果其他人偶然发现这个问题,我想我会发布我的解决方案。

您碰巧使用 http://imsky.co 中的 Holder ?

Holder 定义 window.getCompulatedStyle(如果不存在)。但在 IE8 中却没有。

jQuery 检查 window.getCompulatedStyle 是否存在。如果存在,jQuery 会跳转到 IE8 不安全代码。如果 window.getCompulatedStyle 不存在,则一切正常。

我的解决办法是编辑holder.js。

这一行:

(window.getComputedStyle = function (e) { return this.el = e, this.getPropertyValue = function (t) { var n = /(\-([a-z]){1})/g; return t == "float" && (t = "styleFloat"), n.test(t) && (t = t.replace(n, function () { return arguments[2].toUpperCase() })), e.currentStyle[t] ? e.currentStyle[t] : null }, this })

这就是问题所在。

我将 getCompulatedStyle 检查更改为:

if (window.getComputedStyle) {
window.getComputedStyleHolder = window.getComputedStyle;
} else {
(window.getComputedStyleHolder = function (e) { return this.el = e, this.getPropertyValue = function (t) { var n = /(\-([a-z]){1})/g; return t == "float" && (t = "styleFloat"), n.test(t) && (t = t.replace(n, function () { return arguments[2].toUpperCase() })), e.currentStyle[t] ? e.currentStyle[t] : null }, this })
}

然后我将holder.js中对window.getCompulatedStyle的所有其他引用更新为window.getCompulatedStyleHolder

关于javascript - ie8 Bootstrap ownerDocument.defaultView为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23026411/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com