DIV弹出层无法遮罩ActiveX控件的解决方案

本文内容参考网上实例,结合自己实践进行总结

参考地址:https://www.evget.com/article/2011/10/11/16665.html

自己实现代码:

var nowindex = $("#PreviewOcx").css('z-index');

//这个地方最好使用ActiveX容器object,并且在html中不要手动设置该object的zindex, 自己设置过后出现一些不明白的情况,比如说设置大于1000后对话框不能显示,所以最好不设置,具体原因不详

     if (document.getElementById("__iframeBodyCover") == null) {//判断是不是有遮罩的iframe
        var iframeBodyCover = document.createElement("iframe"); //创建iframe
        iframeBodyCover.id = "__iframeBodyCover";
        iframeBodyCover.style.cssText = "position:absolute;top:0;left:0;width:100%; height:100%;background-color:#5A5A5A;";  

//参考实例中说要设置 iframe的display为none  ,但是自己测试,设置了   display为none  最终的对话框显示不出来,还是同样被ActiveX控件遮挡

//设置iframe的大小的时候最好设置为全屏大小,不然只有在iframe上面的部分的对话框能显示出来,其他地方显示不出来
        iframeBodyCover.src = "javascript:false;";
        document.body.appendChild(iframeBodyCover);//添加到文档中
    }
    $("#__iframeBodyCover").zIndex(nowindex + 1);     //设置
    $("#settingModal").modal('show');
    $("#settingModal").zIndex(nowindex + 2);

 

注意:

1、使用该方法是可以实现想要的功能,但是有些时候可能因为其他地方设置了zindex会影响,具体需要调试才晓得;

为了不麻烦的调试,获取最初的index的时候最好使用ActiveX容器object来获取,并且ActiveX容器object不要设置zindex

2、最后在关掉对话框的时候应该移除上面创建的iframe

$('#settingModal').on('hide.bs.modal', function() {
        $("#__iframeBodyCover").remove();
    });

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值