在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 相关文章推荐
Extjs ajax同步请求时post方式参数发送方式
Aug 05 Javascript
js 幻灯片的实现
Dec 06 Javascript
JavaScript保留两位小数的2个自定义函数
May 05 Javascript
JavaScript通过join函数连接数组里所有元素的方法
Mar 20 Javascript
使用React实现轮播效果组件示例代码
Sep 05 Javascript
微信小程序 实例开发总结
Apr 26 Javascript
jQuery常用选择器详解
Jul 17 jQuery
在vue中使用jointjs的方法
Mar 24 Javascript
element-ui组件table实现自定义筛选功能的示例代码
Mar 15 Javascript
bootstrap Table实现合并相同行
Jul 19 Javascript
解决layui使用layui-icon出现默认图标的问题
Sep 11 Javascript
基于JavaScript或jQuery实现网站夜间/高亮模式
May 30 jQuery
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
优化php效率,提高php性能的一些方法
2011/03/24 PHP
PHP Swoole异步Redis客户端实现方法示例
2019/10/24 PHP
利用JQuery为搜索栏增加tag提示
2009/06/22 Javascript
javascript中将Object转换为String函数代码 (json str)
2012/04/29 Javascript
Fixie.js 自动填充内容的插件
2012/06/28 Javascript
jQuery在html有效在jsp无效的原因及解决方法
2013/08/02 Javascript
输入自动提示搜索提示功能的使用说明:sugggestion.txt
2013/09/02 Javascript
javascript为下拉列表动态添加数据项
2014/05/23 Javascript
js实现特定位取反原理及示例
2014/06/30 Javascript
JavaScript继承基础讲解(原型链、借用构造函数、混合模式、原型式继承、寄生式继承、寄生组合式继承)
2014/08/16 Javascript
node.js使用npm 安装插件时提示install Error: ENOENT报错的解决方法
2014/11/20 Javascript
Underscore.js常用方法总结
2015/02/28 Javascript
jQuery如何使用自动触发事件trigger
2015/11/29 Javascript
jQuery获取字符串中出现最多的数
2016/02/22 Javascript
Vue2学习笔记之请求数据交互vue-resource
2017/02/23 Javascript
详谈jQuery unbind 删除绑定事件 / 移除标签方法
2017/03/02 Javascript
jQuery用noConflict代替$的实现方法
2017/04/12 jQuery
详解在WebStorm中添加Vue.js单文件组件的高亮及语法支持
2017/10/21 Javascript
React Native开发封装Toast与加载Loading组件示例
2018/09/08 Javascript
解决vue中使用less/sass及使用中遇到无效的问题
2020/10/24 Javascript
[01:26]DOTA2荣耀之路2:iG,China
2018/05/24 DOTA
[01:51]2018年度CS GO最具人气外援-完美盛典
2018/12/16 DOTA
[04:20]DOTA2-DPC中国联赛 正赛 VG vs LBZS 选手采访 1月19日
2021/03/11 DOTA
python开发之thread实现布朗运动的方法
2015/11/11 Python
Python设计模式之门面模式简单示例
2018/01/09 Python
python numpy格式化打印的实例
2018/05/14 Python
Python中一些不为人知的基础技巧总结
2018/05/19 Python
Python实现最常见加密方式详解
2019/07/13 Python
通过案例解析python鸭子类型相关原理
2020/10/10 Python
Jupyter Notebook安装及使用方法解析
2020/11/12 Python
Linux的主要特性
2014/10/06 面试题
大学生职业生涯规划书参考模板
2014/03/05 职场文书
投标授权委托书范文
2014/08/02 职场文书
课程设计感想范文
2015/08/11 职场文书
python实现语音常用度量方法的代码详解
2021/05/25 Python
Java Optional<Foo>转换成List<Bar>的实例方法
2021/06/20 Java/Android