【问题标题】:Error in IE11 when trying to show a bootstrap Modal via JavaScript尝试通过 JavaScript 显示引导模式时 IE11 出错
【发布时间】:2014-09-08 02:46:52
【问题描述】:

modal.modal('show');在所有其他浏览器中工作时在 Internet Explorer 中触发错误 错误是对象不支持属性或方法“模态”

注意:此模式由多个按钮调用,并且每次都需要更新,这就是我进行模式重置的原因。

顺便说一句,为什么我必须克隆模态两次才能进行模态重置?有没有更好的重置方法?

var original_model = "";
$(document).ready(function() {
    original_model = $('#my_modal_id').clone();
})

function show_modal(user_photo) {

    //reseting the modal
    $("#my_modal_id").remove();
    var myClone = original_model.clone();
    $("body").append(myClone);

    var modal = $("#my_modal_id");

    modal.find("#photo").attr("src", user_photo);

    // more code to update the modal ...

    // Does not work in IE11 : Error : Object doesn't support property or method 'modal'
    modal.modal('show');
}

【问题讨论】:

  • 你能创建一个 jsfiddle 吗?
  • jsfiddle.net/79ov9agq/5 奇怪,它似乎在 jsfiddle 上工作,但它不会在我的现场网站上,我在我的网站上使用 BS 3.0 版,不确定它与它有什么关系
  • 检查你的 jQuery 版本
  • 您可能还想尝试将其从 modal 重命名为其他名称。
  • 尝试将剩余形式模态转换为 modal_ref 但没有运气

标签: javascript jquery twitter-bootstrap internet-explorer modal-dialog


【解决方案1】:

尝试在 var modal 声明之后将此代码添加到您的 show_modal() 函数中:

if ($.browser.version > 9){
    modal.removeClass('fade');
}

这需要下载jQuery migrate plugin

【讨论】:

  • 现在我收到一个新错误无法获取未定义或空引用的属性“版本”。我正在使用最新的 Jquery,它必须能够正常工作,因为我正在使用它来进行 ajax 调用,并且它正在 IE 中工作
  • 这很奇怪。请参阅api.jquery.com/jquery.browser/#jQuery-browser-version2 它应该可以工作
  • 我已经更新了我的答案。看起来这需要使用 jQuery 迁移插件。
  • 现在很好,IE 出了点问题,我只是在高级选项卡中进行了原始设置,现在可以使用了。 IE = 垃圾浏览器
  • 您的 IE 可能处于兼容模式。
【解决方案2】:

如果你为你的项目使用编译(例如使用 webpack),你可以考虑安装当前提供 ES5 兼容性的 polyfill 包

npm i --save core-js

yarn add core-js

然后在项目入口点的顶部添加

import 'core-js'

目前core-js polyfill library 是实现跨浏览器支持的最简单方法

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-08
    • 1970-01-01
    • 1970-01-01
    • 2022-07-14
    • 2017-02-02
    • 1970-01-01
    • 2019-02-24
    相关资源
    最近更新 更多