bootstrap ie8模态弹出窗口

时间:2015-09-21 12:45:52

标签: jquery twitter-bootstrap internet-explorer

我用谷歌搜索了这个,并尝试了我找到的几个答案,但无法解决我的问题。

我有一个模式弹出窗口,应该出现在按钮上。这适用于所有其他浏览器/版本,但IE。一个客户必须使用IE 8(所有仍然使用XP,但请不要争论他们应该更新。这不会在不久的将来发生。)

这是我的一些HTML代码。 (为简洁起见,省略了表格细节)

 <div class="modal fade" id="collect-email" data-backdrop="static" data-keyboard="false">
    <div class="modal-header">
        <a class="close" data-dismiss="modal">&times;</a>
        <h3>Collect Customer Email</h3>
    </div>
    <div class="modal-body">

...

我已加载html5shiv。我也有下面的js代码,它应该删除淡入淡出操作,因此使模态工作。

var ie = (function(){
    var undef,
        v = 3,
        div = document.createElement('div'),
        all = div.getElementsByTagName('i');

    while (
        div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->',
        all[0]
    );
    return v > 4 ? v : undef;
}());

$(document).ready(function () {        
    if (ie < 10) {
            jQuery('.fade').removeClass('fade');
    }
...

但是,只要浏览页面,模态就会显示。按下模态弹出窗口上的关闭或确定按钮不会再次隐藏它。

更新:我交换了我的ie版本检测代码,用于检测特定功能。

  if( ! document.addEventListener  ){
        alert("you got IE8 or less");

        jQuery('.fade').removeClass('fade');
        $('#collect-email').modal({ show: false });
    }

警告弹出,因此它正在捕获早期的浏览器。淡化被删除,所以问题是线;  $('#collect-email')。modal({show:false});我加入试图强制模态消失。

编辑:找到解决方法。 如果我手动隐藏并在适当的时间显示div包装模态,那么其余的代码就可以工作了。所以它不优雅,但是因为这是xp / ie8,我现在不会因此而失去太多的睡眠。

1 个答案:

答案 0 :(得分:0)

它是否删除了标记中的淡入淡出类? (通过检查元素检查)。如果不是,也许你的功能不正确。看看http://api.jquery.com/jquery.browser/