這篇文章主要介紹“Bootstrap模態(tài)窗中怎么從遠(yuǎn)程加載內(nèi)容”,在日常操作中,相信很多人在Bootstrap模態(tài)窗中怎么從遠(yuǎn)程加載內(nèi)容問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Bootstrap模態(tài)窗中怎么從遠(yuǎn)程加載內(nèi)容”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
在泗縣等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站制作、成都做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作按需開發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,全網(wǎng)營銷推廣,成都外貿(mào)網(wǎng)站建設(shè)公司,泗縣網(wǎng)站建設(shè)費(fèi)用合理。
Bootstrap的Modal這個(gè)模態(tài)窗組件還是很好用的,但在開發(fā)的過程中模態(tài)窗中的內(nèi)容大部分都是從后端加載的。要實(shí)現(xiàn)模態(tài)窗的內(nèi)容是從后端加載話,常用的實(shí)現(xiàn)方式有2種。它們是:
(1)Modal里面套一個(gè)Iframe,通過Iframe的src去加載遠(yuǎn)程的內(nèi)容。這種方式的缺點(diǎn)是這個(gè)模態(tài)框的寬度和高度不好調(diào),而且把寬度和高度設(shè)置成固定值,就破壞了bootstrap的響應(yīng)式布局了。
(2)使用Modal的remote參數(shù)去加載遠(yuǎn)程的內(nèi)容。這種方式有些小bug(后面會介紹解決方案),不過這種方式?jīng)]有上一種方式需要手動(dòng)設(shè)置的寬度和高度的麻煩。
個(gè)人比較喜歡第2種方式,這樣就介紹下使用remote的方式。
本次使用的bootsrap的版本是 3.3.7
(1)主頁面
主頁面這里,先放置好一個(gè)模態(tài)框,不過模態(tài)框里面的內(nèi)容是空白的。后續(xù)遠(yuǎn)程加載后的數(shù)據(jù)就會自動(dòng)填充到class="modal-content"這個(gè)p里面。準(zhǔn)備好如下html代碼:
<!-- 彈出模態(tài)窗口--> <div class="modal fade" style="top:13%;" tabindex="-1" role="dialog" id="showModal"> <div class="modal-dialog" role="document"> <div class="modal-content"> <!-- 內(nèi)容會加載到這里 --> </div> </div><!-- /.modal-content --> </div><!-- /.modal-dialog --> </div><!-- /.modal -->
放置好模態(tài)窗口后,我們可以在主頁面上放一個(gè)按鈕來觸發(fā)這個(gè)模態(tài)窗口的顯示,這個(gè)按鈕的html代碼如下:
<button type="button" id="addBtn" class="btn btn-primary">新增用戶</button>
按鈕和模態(tài)窗好后,我們需要給這個(gè)按鈕綁定點(diǎn)擊事件,點(diǎn)擊后顯示模態(tài)窗口并從遠(yuǎn)程加載數(shù)據(jù)。js代碼如下:
$("#addBtn").click(function(){ // 打開模態(tài)框 $("#showModal").modal({ backdrop: 'static', // 點(diǎn)擊空白不關(guān)閉 keyboard: false, // 按鍵盤esc也不會關(guān)閉 remote: '/sys/toAddUser' // 從遠(yuǎn)程加載內(nèi)容的地址 }); });
主頁面的內(nèi)容就是這些,注意:開始的那些引入bootstrap相關(guān)的代碼我沒貼,使用時(shí)需要自己引入好。
(2)待加載到模態(tài)框里面的頁面準(zhǔn)備
首先,我先說下,這個(gè)頁面里面不需要引入和任何的js和css。因?yàn)檫@個(gè)頁面加載到模態(tài)框里面后,就相當(dāng)于主頁面上的一部分了。有點(diǎn)像主頁面把它給動(dòng)態(tài)導(dǎo)入的感覺,它可以訪問主頁面的任何內(nèi)容。這個(gè)頁面可以看成是class="modal-content" 這個(gè)p內(nèi)容,加載后就把這些html代碼嵌入到里面去了。因此寫這個(gè)頁面時(shí),我們可以去bootstrap官網(wǎng)copy一個(gè)模態(tài)框的代碼,把里面的內(nèi)容那塊抽取出來做我們這個(gè)遠(yuǎn)程頁面是最適合的了。 我準(zhǔn)備的代碼如下:
<div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> <h5 class="modal-title">添加用戶</h5> </div> <div class="modal-body"> <form id="addForm"> <div class="form-group"> <label for="account">賬號</label> <input type="text" class="form-control" id="account" name="account" placeholder="賬號(用于登錄)"> </div> <div class="form-group"> <label for="username">用戶名</label> <input type="text" class="form-control" id="username" name="username" placeholder="用戶名"> </div> <div class="form-group"> <label for="password">密碼</label> <input type="password" class="form-control" id="password" name="password" placeholder="Password"> </div> </form> </div> <div class="modal-footer"> <button type="button" id="resetBtn" class="btn btn-default" >重置</button> <button type="button" id="saveBtn" class="btn btn-primary">提交</button> </div>
其實(shí)后臺代碼沒什么介紹的,當(dāng)點(diǎn)擊主頁面的按鈕后,后臺接收到這個(gè)請求,把準(zhǔn)備好的頁面返回過去就ok。用SpringMvc一下就實(shí)現(xiàn)。故不介紹。
通過點(diǎn)擊主頁面的新增按鈕,彈出了模態(tài)框,并把遠(yuǎn)程的頁面加載到了遠(yuǎn)程模態(tài)框里面。
(1)經(jīng)過測試,發(fā)現(xiàn)這個(gè)模態(tài)窗的內(nèi)容重后臺加載一次后,再關(guān)閉這個(gè)模態(tài)窗再打開時(shí)不會再從后臺加載。
(2)這個(gè)模態(tài)框里面的內(nèi)容在加載后就留在了主頁面上,主頁面可以直接訪問。這樣容易出現(xiàn)問題,如:主頁中有個(gè)dom元素的id和模態(tài)框里面的dom元素的id相同,這就容易出bug,我們希望模態(tài)窗關(guān)閉后直接把模態(tài)窗里面的內(nèi)容都清除掉。
解決上面2個(gè)bug的方案見下面這段js代碼,其實(shí)是監(jiān)聽了模態(tài)窗的關(guān)閉
// 每次隱藏時(shí),清除數(shù)據(jù),確保不會和主頁dom元素沖突。確保點(diǎn)擊時(shí),重新加載。 $("#showModal").on("hidden.bs.modal", function() { // 這個(gè)#showModal是模態(tài)框的id $(this).removeData("bs.modal"); $(this).find(".modal-content").children().remove(); });
要注意的是遠(yuǎn)程加載的這個(gè)頁面其實(shí)是一小段html代碼,它不需要單獨(dú)的引入js和css(如bootstrap的js和css)。這和使用Iframe方式是完全不同的,Iframe里面的內(nèi)容可以看成是個(gè)單獨(dú)的頁面,所以使用Iframe時(shí)需要自己引入js和css。
到此,關(guān)于“Bootstrap模態(tài)窗中怎么從遠(yuǎn)程加載內(nèi)容”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!
網(wǎng)站欄目:Bootstrap模態(tài)窗中怎么從遠(yuǎn)程加載內(nèi)容
網(wǎng)頁網(wǎng)址:http://muchs.cn/article48/ghjehp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、商城網(wǎng)站、網(wǎng)站導(dǎo)航、手機(jī)網(wǎng)站建設(shè)、做網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)