This article mainly introduces the problem of making the bootstrap modal box pop up on the parent page in an iframe. The solution is very good and has reference value. Friends in need can refer to it
In the past few days, When writing the project, the page used an iframe. However, when using the bootstrap modal box in the sub-page, I found that the position of the pop-up modal box was centered based on the sub-page, and the mask layer was only part of the sub-page. The entire page is almost impossible to view directly, so I thought about making the modal box pop up based on the parent page. After searching for information on the Internet, I summarized a solution.
Effect display
Page before modification
Page after modification
Implementation ideas
To make the modal box open on the top page, the way I think of is to use bootstrap The modal box pops up on the parent page.
First of all, we write a separate page for the p that needs to pop up. When the child page needs to pop up, just pop up the p on the parent page.
Write the modal box as a separate page
Main page
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> </head> <body> <p class="modal fade" id="ajax" role="basic" aria-hidden="true"> <p class="modal-dialog"> <p class="modal-content"> </p> </p> </p> </body> <script> $("#ajax").modal({ remote: "./model.html" }); </script> </html>
Modal box page
<p class="modal-content"> <p 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> </p> <p class="modal-body"> 这是模态框 </p> <p class="modal-footer"> <button type="button" class="btn btn-primary">保存</button> <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button> </p> </p>
In this way, the p of the modal box can be written as a separate page
Modify the main page and add sub-pages
Modified main page
<!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" /> <p class="modal fade" id="ajax" role="basic" aria-hidden="true"> <p class="modal-dialog"> <p class="modal-content"> </p> </p> </p> </body> <script> function modalOut(url) { $("#ajax").modal({ remote: url; }); } </script> </html>
In this way, the main page will have 2 sub-pages, and will The method of popping up the modal box is encapsulated in the modalOut(url) method
The sub-page pops up the modal box
When the sub-page needs to pop up the modal box When the state box is displayed, just load the modalOut(url) method in the parent page:
The js of the sub-page is as follows
var _iframe = window.parent; _iframe.modalOut('xxx.html');
The above is to solve the pop-up in the sub-page The solution to the problem that the modal box cannot cover all pages,
Note: Therefore, js is not loaded in the html, please load the bootstrap related js by yourself.
The above is the detailed content of Detailed explanation of how to use bootstrap to pop up a modal box on the parent page in an iframe. For more information, please follow other related articles on the PHP Chinese website!