在iframe中使bootstrap的模态框在父页面弹出问题


Posted in Javascript onAugust 07, 2017

这几天在写项目的中,页面使用了iframe,然而在子页面中使用bootstrap的模态框时发现:弹出的模态框位置是以子页面为标准居中的,并且遮罩层也只有子页面那一部分,整个页面简直无法直视,所以思考可以可以让模态框以父页面为标准弹出,经过在网上查找资料,总结了一种解决方法。

效果展示

修改前页面

在iframe中使bootstrap的模态框在父页面弹出问题

修改后页面

在iframe中使bootstrap的模态框在父页面弹出问题

实现思路

要想使模态框在顶级页面打开,我想到的方法是使bootstrap的模态框弹在父页面弹出即可。

首先我们将需要弹出的div单独写一个页面,当子页面需要弹出时,在父页面弹出div即可。

将模态框单独写为一个页面

主页面

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title></title>
  </head>
  <body>
    <div class="modal fade" id="ajax" role="basic" aria-hidden="true">
      <div class="modal-dialog">
        <div class="modal-content">
        </div>
      </div>
    </div>
  </body>
  <script>
      $("#ajax").modal({
        remote: "./model.html"
      });
  </script>
</html>

模态框页面

<div class="modal-content">
  <div class="modal-header">
    <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
    <h4 class="modal-title" id="myModalLabel">Modal title</h4>
  </div>
  <div class="modal-body">
    这是模态框
  </div>
  <div class="modal-footer">
    <button type="button" class="btn btn-primary">保存</button>
    <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
  </div>
</div>

这样就可以将模态框的div单独写为一个页面

修改主页面,加入子页面

修改后主页面

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title></title>
  </head>
  <body>
    <table width="100%" height="720px" border="1">
      <tr>
        <td>
          <iframe id="iframe1" name="iframe1" src="iframe1.html" width="100%" height="100%"></iframe>
        </td>
        <td></td>
      </tr>
      <tr>
        <td></td>
        <td>
          <iframe name="iframe2" src="iframe2.html" width="100%" height="100%"></iframe>
        </td>
      </tr>
    </table>
    <input type="text" id="textId" value="234" />
    <div class="modal fade" id="ajax" role="basic" aria-hidden="true">
      <div class="modal-dialog">
        <div class="modal-content">
        </div>
      </div>
    </div>
  </body>
  <script>
    function modalOut(url) {
      $("#ajax").modal({
        remote: url;
      });
    }
  </script>
</html>

这样主页面就有2个子页面,并且将弹出模态框的方法封装至modalOut(url)方法中

子页面弹出模态框

当子页面需要弹出模态框时,加载父页面中的modalOut(url)方法即可:

子页面js如下

var _iframe = window.parent;
_iframe.modalOut('xxx.html');

以上就是解决子页面中弹出模态框无法覆盖全部页面的解决办法,

注意:所以html中未加载js,请自行加载bootstrap相关的js。

总结

以上所述是小编给大家介绍的在iframe中使bootstrap的模态框在父页面弹出问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jQuery 源码分析笔记(6) jQuery.data
Jun 08 Javascript
IE 当eval遇上function的处理
Aug 09 Javascript
为EasyUI的Tab标签添加右键菜单的方法
Jul 14 Javascript
jquery获取对象的方法足以应付常见的各种类型的对象
May 14 Javascript
Javascript实现禁止输入中文或英文的例子
Dec 09 Javascript
JS实现点击按钮控制Div变宽、增高及调整背景色的方法
Aug 05 Javascript
Bootstrap与KnockoutJs相结合实现分页效果实例详解
May 03 Javascript
如何用js实现鼠标向上滚动时浮动导航
Jul 18 Javascript
three.js加载obj模型的实例代码
Nov 10 Javascript
vue element-ui el-date-picker限制选择时间为当天之前的代码
Nov 07 Javascript
Vue双向绑定实现原理与方法详解
May 07 Javascript
基于vue中的scoped坑点解说
Sep 04 Javascript
JS判断微信扫码的方法
Aug 07 #Javascript
AngularJs每天学习之总体介绍
Aug 07 #Javascript
关于webpack2和模块打包的新手指南(小结)
Aug 07 #Javascript
BootStrap Fileinput插件和Bootstrap table表格插件相结合实现文件上传、预览、提交的导入Excel数据操作步骤
Aug 07 #Javascript
ES6新增数据结构WeakSet的用法详解
Aug 07 #Javascript
bootstrap Table插件使用demo
Aug 07 #Javascript
Django+Vue.js搭建前后端分离项目的示例
Aug 07 #Javascript
You might like
Memcached常用命令以及使用说明详解
2013/06/27 PHP
ThinkPHP分页类使用详解
2014/03/05 PHP
jquery中对表单的基本操作代码
2010/07/29 Javascript
js 获取计算后的样式写法及注意事项
2013/02/25 Javascript
jquery获取tr并更改tr内容示例代码
2014/02/13 Javascript
纯JavaScript代码实现移动设备绘图解锁
2015/10/16 Javascript
[原创]JQuery 在表单提交之前修改 提交的值
2016/04/14 Javascript
jQuery ajax中使用confirm,确认是否删除的简单实例
2016/06/17 Javascript
AngularJs Injecting Services Into Controllers详解
2016/09/02 Javascript
JS简单实现仿百度控制台输出信息效果
2016/09/04 Javascript
JS数字千分位格式化实现方法总结
2016/12/16 Javascript
Bootstrap3 多个模态对话框无法显示的解决方案
2017/02/23 Javascript
基于jQuery实现文字打印动态效果
2017/04/21 jQuery
jQuery实现select下拉框获取当前选中文本、值、索引
2017/05/08 jQuery
如何能分清npm cnpm npx nvm
2019/01/17 Javascript
详解Vue中watch对象内属性的方法
2019/02/01 Javascript
微信小程序select下拉框实现效果
2019/05/15 Javascript
vue实现整屏滚动切换
2020/06/29 Javascript
[01:48]DOTA2 2015国际邀请赛中国区预选赛第二日战报
2015/05/27 DOTA
[54:10]完美世界DOTA2联赛PWL S2 Magma vs FTD 第二场 11.29
2020/12/03 DOTA
玩转python爬虫之正则表达式
2016/02/17 Python
Python 实现取矩阵的部分列,保存为一个新的矩阵方法
2018/11/14 Python
python开发准备工作之配置虚拟环境(非常重要)
2019/02/11 Python
python实现beta分布概率密度函数的方法
2019/07/08 Python
Python3.7基于hashlib和Crypto实现加签验签功能(实例代码)
2019/12/04 Python
pandas实现将日期转换成timestamp
2019/12/07 Python
Python+OpenCV 实现图片无损旋转90°且无黑边
2019/12/12 Python
django中related_name的用法说明
2020/05/20 Python
HTML5的革新 结构之美
2011/06/20 HTML / CSS
入党自我评价优缺点
2014/01/25 职场文书
《永远的白衣战士》教学反思
2014/04/25 职场文书
群众路线教育实践活动调研报告
2014/11/03 职场文书
文明单位创建材料
2014/12/24 职场文书
职工培训工作总结
2015/08/10 职场文书
【2·13】一图读懂中国无线电发展
2022/02/18 无线电
Win11 22H2 2022怎么更新? 获得Win1122H22022版本升级技巧
2022/09/23 数码科技