1. 程式人生 > >把一個頁面嵌入到另一頁面進行彈框顯示

把一個頁面嵌入到另一頁面進行彈框顯示

在專案過程中我們經常會用到把一個頁面嵌入到另外的一個頁面當中去   比如以一個模態框的形式去展示  但是這個過程中而且還會涉及到資料的互動 比如在列表的展示頁我們希望修改和新增是通過一個頁面的彈框的形式去進行  而不是通過直接跳轉到一個對應的jsp或者一個html頁面    又或者說  我們在專案的過程中對專案進行版本的升級  原有的頁面設計就是通過直接跳轉到一個jsp和html頁面  那麼這個時候我們想直接通過去巢狀進來  而且不影響其他的功能   並且不需要去做任何的程式碼的修改等 諸如此類的應用場景  我們又該如何的操作呢  今天我就給大家帶來這種效果的實現   使用的bootstreap中的模態框實現的  之前也有用過easyui進行操作  相對的容易  所以大家可以借鑑 

      第一步:我們使用bootstreap先要對它進行有一個大概熟悉,這要我們就可以更好的使用它   出了問題也知道如何去修改  這裡大家可自行下載相應的api和對應的教程

      第二步:去官方下載對應的js,css檔案

      第三步:按照官方的文件和案例引入對應的js,css檔案

      第四步:編寫相應的demo實現想要的功能和測試

      第五步:專案的過程中使用和程式碼的封裝

 這是我在使用任何一項技術的時候所使用的步驟  大家可借鑑   根據自己個人的能力和適合自身的情況,話不多說  開始今天的案例實現。

找到官方的文件javascript外掛中找到模態框案例

根據官方提示注意

1.千萬不要在一個模態框上重疊另一個模態框。要想同時支援多個模態框,需要自己寫額外的程式碼來實現。

2.務必將模態框的 HTML 程式碼放在文件的最高層級內(也就是說,儘量作為 body 標籤的直接子元素),以避免其他元件影響模態框的展現和/或功能。

3.瀏覽器的相容性具體太多,大家可自行檢視

現在假設你有兩個jsp頁面list.jsp和update.jsp兩個頁面  原本兩個頁面的功能都是獨立的現在需要把update.jsp直接通過彈框的形式在list.jsp中彈出,這裡我做了一個封裝成一個model.jsp根據官方的案例進行封裝,其中header.jsp重要是一些引入的js,css檔案等

先看model.jsp中的功能

<%@ page contentType="text/html; charset=UTF-8"%>
<%@ include file="../include/header.jsp"%>

<body>
<!-- 公用對話方塊1 -->
<div class="modal fade" id="commonMaxDlg">
<div class="modal-dialog modal-lg">
<div class="modal-content"></div>
</div>
</div>

<!-- 公用對話方塊2 -->
<div class="modal fade" id="commonMinDlg">
<div class="modal-dialog" style="width: 598px;">
<div class="modal-content"></div>
</div>
</div>

<script type="text/javascript">
//公共對話方塊1
function showPubModal(modalId,url,tdPadding){
var dlObj = $(modalId);
$(dlObj).find('.modal-content').empty();
$(dlObj).modal({show: true});
$(dlObj).find('.modal-content').load(url, function(){
$(this).css('padding','15px');
var tableObj = $(this).find('.ReportTable');
$(tableObj).addClass('table table-bordered').removeClass('ReportTable');
$(tableObj).find('td').css('padding-top',tdPadding);
$(dlObj).css('overflow','auto');
});
}
//公共對話方塊2
function showPubModal2(modalId,url){
var dlObj = $(modalId);
$(dlObj).find('.modal-content').empty();
$(dlObj).modal({show: true});
$(dlObj).find('.modal-content').load(url, function(){
$(this).css('padding','15px');
var tableObj = $(this).find('.ReportTable');
$(tableObj).addClass('table table-bordered').removeClass('ReportTableList');
$(tableObj).find('td').css('padding-top','6px');
$(dlObj).css('overflow','auto');
});
}

//關閉公共對話方塊
function modalToggleFun(modalId){
$(modalId).modal('toggle'); 
}
//公共對話方塊關閉事件和開啟
function modalHiddenFun(hiddenModalId,showModalId){
$(hiddenModalId).on('hidden.bs.modal',function(){
$(showModalId).modal({show: true});
});
}
</script>

</body>

list.jsp頁面

<%@ page contentType="text/html; charset=UTF-8"%>
<%@ include file="../include/header.jsp"%>
<script language="JavaScript" type="text/javascript">
//add
function clk_update(id){
var url = 'AddAction.do?operate=add&Id="+id; 
window.top.showPubModal('#commonMaxDlg',url,'5px');
}

<body>

     其他內容被我刪除

     <input type="button" value="修改" onclick="clk_update(1)">

</body>

update.jsp

<%@ page contentType="text/html; charset=UTF-8" %>

<%@ include file="../include/header.jsp"%>

<script language="JavaScript" type="text/javascript">


function clk_save(){
var srvUrl = "EditAction.do?operate=save";
var nModal = $(window.top.document).find('#commonMaxDlg');
var frm1 = $(nModal).find('form[name=Form]');
var nBtn = $(nModal).find('#SaveBtn');
// 禁用按鈕
nBtn.html(' 請稍候...');
nBtn.addClass('disabled');

var frmStr = $(frm1).serialize();

       $.ajax({

url : srvUrl,
cache : false,
type : "post",
async : true,
data : frmStr,
success : function(result) {
$(nModal).modal('hide');
nBtn.removeClass('disabled');
nBtn.html(' 儲存');

alert("儲存成功");

                        儲存成功這裡我想接下這實現一種展示頁面無重新整理的效果,這裡我們可以根據父級去找到上一條頁面的值  然後通過js去實現這一條值重新的填充進去  從而達到一種無重新整理的效果

},
error : function(request, error) {
nBtn.removeClass('disabled');
nBtn.html(' 儲存');
alert("操作異常");
}
});
}
</script>
<body>
<div class="modal-header">
<h4 class="modal-title" id="kpitemAddLabel">編輯資訊</h4>
<div class="pull-right headerBtn">
<a class="btn btn-default fa fa-remove" data-dismiss="modal"> 取消</a>
<a class="btn btn-primary fa fa-check" style="margin-left: 15px;" href="javascript:clk_save()" id="SaveBtn"> 儲存</a>
</div>

<form name="Form" id="updateForm" action="EditAction.do" method="post">

        <input type="text" name="uname"/>

</form>

</body>

這樣就可以實現一個簡單的直接把一個頁面的功能巢狀在本頁面中 ,這裡我只是對修改的頁面中的具體實現做了一個修改,這個可根據個人情況而定,有不明白的地方可留言,希望能夠解決你的問題



相關推薦

一個頁面嵌入頁面進行顯示

在專案過程中我們經常會用到把一個頁面嵌入到另外的一個頁面當中去   比如以一個模態框的形式去展示  但是這個過程中而且還會涉及到資料的互動 比如在列表的展示頁我們希望修改和新增是通過一個頁面的彈框的形式去進行  而不是通過直接跳轉到一個對應的jsp或者一個html頁面   

如何跳轉指定頁面後再次跳轉到頁面或原來的頁面

res 格式 quest 如何 完成 .get cal ons js代碼 這裏可以采用redirect以get形式向指定頁面發出get請求,指定頁面完成後會再次跳轉到redirect後邊指定的頁面 格式:需要請求的URL?redirect=請求URL完成後需要跳轉的地址 例

frams中子頁面重新整理個子頁面

例如:在上頁面控制main頁面,使main頁面重新整理 $("#refresh").click(function(){ //獲取main頁面中的body var body = $(parent.parent.main.document).contents().find("b

前嗅教程:同一個網站中從頁面采集數據

dac 鼠標 images 腳本 person c2c 通過 5.1 問題 第一步:新建任務①點擊左上角“加號”新建任務,如圖1:【圖1】②在彈窗裏填寫采集地址,任務名稱,如圖2:【圖2】③點擊下一步,選擇進行數據抽取還是鏈接抽取,本次采集企業最新動態鏈接列表,所以點擊抽取

【JAVA程式設計題】現在輸入n個數字,以逗號,分開;然後可選擇升或者降序排序;按提交鍵就在頁面顯示按什麼排序,結果為,提供reset

現在輸入n個數字,以逗號,分開;然後可選擇升或者降序排序;按提交鍵就在另一頁面顯示按什麼排序,結果為,提供reset import java.util.*; public class bycomma{

JSP中實現在某頁面停留5秒後,自動重定向到頁面

<html> <!-- 5秒後將跳轉到登陸頁面 -->     <meta http-equiv="refresh" content='5; url=login.html'>   <script type="text/javasc

SQLSERVER復制數據庫某一個表到個數據庫中(可跨服務器)

led 數據 rom msdb pan 錯誤 ons 數據庫 ble 一、復制數據庫某一個表到另一個數據庫中(同一服務器) SELECT * INTO 表1 FROM 表2 --復制表2如果只復制結構而不復制內容或只復制某一列只要加WHERE條件就好了 例子:SELECT

android開發中如何從當前頁面返回上頁面

在開發過程中我們常常會用返回鍵的功能。在一些特定的場合下也可以自己寫返回功能。 一開始我是用intent來建立一個新的頁面。後面發現這樣等同於重新打開了一個新的頁面。 接下來用這種方法:Activity.this.finish(); 直接結束掉當前頁面即可。 原理 :

springboot 前臺Html嵌入html問題

最近學習springboot相關知識時,用了layui的社群模板,該模板多個html頁面中會用到相同的頭,所以我把相同的頭提取出來放在了一個head.html中了,想要通過<#include file=”“>來引入這個head.html,可是一直無法

小程式在當前頁面改變上頁面狀態

var pages = getCurrentPages(); //獲取當前頁面 var prevPage = pages[pages.length - 2];  //獲取上以頁面 console.l

一個數字的每位儲存到個數組中

int change2array(int64_t m, int num[]) { int length = 0, temp, k; while(m != 0) { num[length] = m%10; m /= 10; length++; } fo

漫畫:htts是如何保證臺主機資料安全發給臺主機

通過漫畫的形式由淺入深帶你讀懂htts是如何保證一臺主機把資料安全發給另一臺主機的 對稱加密 一禪:在每次傳送真實資料之前,伺服器先生成一把金鑰,然後先把金鑰傳輸給客戶端。之後伺服器給客戶端傳送真實資料的時候,會用這把金鑰對資料進行加密,客戶端收到加密資料之後,用剛才收到的金

小白級別,臺計算機如何資料傳送給臺計算機

天各一方的兩臺計算機是如何找到對方並進行資料傳輸的?這一切要從計算機網路中五層模型開始講起。**五層模型**有以下這些 ![](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/fdbba6d1d76d4d2480b87256b3f3d392~tplv-k3

利用layer實現MVC頁面數據互交提示

++ 拼接 script isnull you -i 控制 tro ati 需求說明:   一個表單頁面,點擊提交之後,進入後臺進行一系列數據交互,然後將交互信息返回至頁面中,並以彈框形式展示 應用場景:   添加、修改、刪除數據後,返回數據操作是否成功,以及一些其他

js+css jQuery實現頁面後退執行 & 遮罩

cti nload col 復制 ali 我不 彈框 clas 統計 JS部分 <script src="http://libs.baidu.com/jquery/2.0.0/jquery.js"></script> <script typ

hive使用技巧:很多小檔案匯入張表中、顯示在檔案中位置和行數等。

1.使用MSCK命令匯入輸入到hive表 我們有時候會遇到很多小檔案需要匯入到一張hive表裡面,但是一個個匯入非常麻煩。 假設建立一個外部表,這個表在hdfs的order資料夾裡,但是這個資料夾現在是空的。所以用select * 是沒有資料的。 CREATE EXTERNAL TABL

CVE-2017-8759完美復現(附加hta+powershell閃爍解決方案)

CVE-2017-8759 是前幾天出的 0 DAY ,搜了下,國內幾乎沒有人復現,這個洞總體來說,危害很大,而且比CVE-2017-0199 更難防禦。 漏洞成因分析: 本人嘗試了下復現,的確有很多坑!國外的大牛們也沒有把利用方式說的很完善。 利用的檔案:

怎麼部分jsp程式碼嵌入一個jsp頁面裡面

在做專案的時候,一套完整的頁面模式要深入到每個頁面中,如手風琴選單; 每次複製,雖然也省事,但是這樣不利於頁面的維護和整改,如果一個地方需要改動,整個專案涉及這個地方的都需要改動,很麻煩,所以,如果把一個公共的部分頁面放在一個jsp頁面,其他頁面都呼叫這個公共頁面的話,修改

js實現一個頁面層數據幸運28源碼出售傳遞到一個頁面

bstr jump cookie element reg 標簽 getitem get let 由於之前面試,被問到過此問題幸運28源碼出售(www.1159880099.com)QQ1159880099,所以今天特意整理了一下。由於自己技術水平有限,若存在錯誤,歡迎提出批