javascript - 为什么我的 Bootstrap 模态窗口在 Opera 中不起作用?

标签 javascript css twitter-bootstrap modal-dialog opera

我使用 Twitter Bootstrap 框架设置了一个模态登录窗口,完全按照 http://twitter.github.com/bootstrap/javascript.html#modals 中的描述(使用标记方法并使用他们的演示模式窗口作为起点)。 它在多种浏览器上运行良好(这是首先使用 Bootstrap 的重要原因之一)。

但是,当我在 Opera 中测试我的页面时,模式窗口不工作。页面会淡出,但窗口不会出现。为什么?

使用:Bootstrap v2.0.4,Opera 12

最佳答案

这是一个 known bug在 Bootstrap 中,我确信修复正在进行中,但对于那些等不及或不能随心所欲地更改框架版本的人,这里有一个很好的修复: 问题是由于模态窗口的典型标记中使用的“淡入淡出”类:

<div id="myModal" class="modal hide fade in">

这个fade 类为模态窗口的出现/关闭提供了漂亮的动画。它显然在 Opera 12 中被破坏了。

虽然删除 fade 类将使其正常工作,但没有理由剥夺其他浏览器用户的权利,因此您可以利用这个方便的 Javascript 片段:

<script type="text/javascript">
    $(document).ready(function()
    {
        if (navigator.appName == "Opera")
        {
            $('#myModal').removeClass('fade');
        }
    });
</script>

这将为 Opera 移除 fade 类,但为其他浏览器保留它。请注意,这将完全禁用 Opera,包括旧版本的用户。如果您有兴趣缩小修复范围,可以测试 navigator.userAgent 以确定版本(Opera 12 的用户代理 header 是 Opera/9.80(Windows NT 6.1; WOW64; U; en) Presto/2.10.289 Version/12.00 在我的电脑上,但由于这不是通用的,你只想检查是否存在 12.00在字符串的末尾。也许勤奋和不那么困的人可以在评论中添加一个增强版本:)

关于javascript - 为什么我的 Bootstrap 模态窗口在 Opera 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11589876/

相关文章:

javascript - Reactjs:类/原型(prototype)在我们的应用程序中有任何位置吗?

javascript - 我可以 orderByChildren 或 orderByValue 将 1 个 child 减去另一个吗? (或任何其他使用计算变量的方法)

css 2 列将文本 float 到两者的底部,允许一列扩展到文本中

html - 在 div 内垂直对齐 div,以及

html - Bootstrap 中的滚动卡片

javascript - 拉斐尔命中检测

javascript - 如何在 JavaScript 中找到所有 2 对具有相同乘积的整数?

html - 将图像固定在响应式 div 的右侧

javascript - 初始化谷歌地图在模式框中不起作用

javascript - 使 <li> 在面板组和列表组中可选择