Javascript 为什么不是';我的引导模式窗口在Opera中不工作吗?

Javascript 为什么不是';我的引导模式窗口在Opera中不工作吗?,javascript,css,twitter-bootstrap,modal-dialog,opera,Javascript,Css,Twitter Bootstrap,Modal Dialog,Opera,我使用TwitterBootstrap框架设置了一个模式登录窗口,完全如中所述(使用标记方法并使用其演示模式窗口作为起点)。 它在多个浏览器上运行得非常好(这是首先使用它的一个重要原因) 但是,当我在Opera中测试我的页面时,模式窗口不工作。页面会像应该的那样淡出,但窗口不会出现。为什么? 使用:Bootstrap v2.0.4,Opera 12这是一个内部引导,我确信正在进行修复,但对于那些迫不及待或者不能随意更改框架版本的人,这里有一个很好的修复: 问题是由于模式窗口的典型标记中使用了“淡

我使用TwitterBootstrap框架设置了一个模式登录窗口,完全如中所述(使用标记方法并使用其演示模式窗口作为起点)。 它在多个浏览器上运行得非常好(这是首先使用它的一个重要原因)

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

使用:Bootstrap v2.0.4,Opera 12

这是一个内部引导,我确信正在进行修复,但对于那些迫不及待或者不能随意更改框架版本的人,这里有一个很好的修复: 问题是由于模式窗口的典型标记中使用了“淡入淡出”类:

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

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

我建议使用Modernizer之类的工具
$('.no-cstransforms3d.fade').removeClass('fade')
相当于

这样,如果opera发布opera 13,上面的代码将无法工作:p


可以使用
.no-cstransforms3d.modal.fade

因为它在12.01中还没有固定,所以可以使用:
if(navigator.appName==“Opera”和&navigator.userAgent.match(/Version\/12\./){
更简单且全局:
if($.browser.Opera)$('.fade').removeClass('fade');
(当然当DOM准备好时)这是一个优秀且有用的方法,但除非他们已经在使用Modernizer,否则更新到Bootstrap的工作分支可能同样容易在给定的项目中,我们可以使用和更新哪些库,这方面的问题更多。但额外的知识总是++:)问题是opera突然发布3d转换时会发生什么。然后你必须再次编辑代码。我很确定他们可能会将其添加到12.50(还没有).我有最新的git回购bootstrap..没有上面的“修复”仍然无法工作在opera NeXT中,请记住google+在opera 12.50首次发布时并没有使用它。修复方法是将您的浏览器字符串更改为镜像firefox等。因此,如果任何这样做的用户尝试引导…问题我真的认为所有项目都应该包括现代化hehe:P它使开发Sooooooo变得更加容易。我当然会同意e、 Modernizer是天赐之物,我已经在我的网站上的许多地方使用它了。但是,当我研究它时,我无法确定失败的原因(即,与Modernizer测试什么兼容性),所以我选择了更多的散弹枪方法。但是你的信息很棒,谢谢
<script type="text/javascript">
    $(document).ready(function()
    {
        if (navigator.appName == "Opera")
        {
            $('#myModal').removeClass('fade');
        }
    });
</script>