本文主要介紹了layer實現關閉彈出層刷新父界面功能,結合實例形式分析了使用layui的layer在關閉彈出層時刷新父界面的常用實現技巧與相關操作注意事項,需要的朋友可以參考下,希望能幫助大家。
本文實例講述了layer實作關閉彈出層刷新父介面功能。分享給大家供大家參考,具體如下:
layer是一款近年來備受青睞的web彈層組件,她具備全方位的解決方案,致力於服務各水平段的開發人員,您的頁面會輕鬆地擁有豐富友善的操作體驗。
最近一個專案採用的是hui前端框架,他的彈出層就是用的layer插件,對於彈出層,有一個操作體驗大家都知道,就是關閉彈出層,需要刷新父親頁面。開始寫的時候,我陷入了自己的誤解,在彈出層處理成功之後,我調用的是:
var index = parent.layer.getFrameIndex(window.name); parent.location.href=url; parent.layer.close(index);
這個地方是這樣寫也沒錯,但是如果這麼寫,它就只能被一個地方調用了,如果有多個地方調用的話,它不能返回原始地址,而是重定向到新的url地址上去了。而剛好,在我的專案中間,某一個彈出層被兩個地方調用了,所以很明顯這種方案就不合適了,需要優化。百度了一下,找到如下兩種最佳化方案:
方案一:
在layer彈出層中呼叫父介面重新載入函數
window.parent.location.reload(); var index = parent.layer.getFrameIndex(window.name); parent.layer.close(index);
方案二:
#呼叫layer外掛程式的end回呼方法:
end - 層銷毀後觸發的回呼
類型:Function,預設:null
無論是確認或取消,只要層被銷毀了,end都會執行,不攜帶任何參數。
父視窗開啟layer彈出框時,當新增end回呼
function openLayer() { //iframe层 parent.layer.open({ type: 2, title: '修改', shadeClose: false, //点击遮罩关闭 shade: 0.8, area: ['30%', '45%'], maxmin: true, closeBtn: 1, content: [url, 'yes'], //iframe的url,yes是否有滚动条 end: function () { location.reload(); } });
layer彈出框處理完成之後,就不需要呼叫其他刷新操作函數了,直接關閉就行了
var index = parent.layer.getFrameIndex(window.name); parent.layer.close(index);
相比較而言,第一種方案會更佳,因為在操作邏輯上,手動關閉彈出框,應該不觸發刷新操作,只有當彈出框的處理邏輯執行成功後,呼叫函數關閉彈出框才會觸發父介面刷新操作,基於這個邏輯,應該選擇方案一。方案二,不管怎樣都會刷新頁面,實際上無端的增加了伺服器的處理壓力。
方案二:可以解決子頁面處理後的結果傳送給子頁面的父頁面的問題。
對於layer.js出現回呼關閉父類別的彈出層時,之前的表單的submit失效的問題:
如何解決:網路上有很多,有的是轉為ajax的請求,在資料傳輸完再關閉父類別的彈出層:
下面是關閉父彈出層的辦法:
var index = parent.layer.getFrameIndex(window.name); //获取窗口索引 parent.layer.close(index); // 关闭layer
採用ajax這樣可以,但是我做的是支付,要彈出頁面才能支付,不能轉換為ajax,怎麼幫?後面我老闆說:「你就不能晚點執行關閉嗎」?這是一個想法試了一下就好了。
附上程式碼:
$("#myForm").submit(); var index = parent.layer.getFrameIndex(window.name); //获取窗口索引 setTimeout(function () { parent.layer.close(index); // 关闭layer },500);
我還需要在關閉父類別視窗後再開啟一個窗口,則怎麼解決,後面發現layer.js留有一個好的方式,那就是呼叫父視窗的方法,這個不受子視窗的影響,透過:parent.父類別方法名稱(參數)這樣就可以了,在父視窗中再呼叫layer.js的彈出就好了。
相關推薦:
以上是layer關閉彈出層刷新父介面功能實作方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

JavaScript在Web開發中的主要用途包括客戶端交互、表單驗證和異步通信。 1)通過DOM操作實現動態內容更新和用戶交互;2)在用戶提交數據前進行客戶端驗證,提高用戶體驗;3)通過AJAX技術實現與服務器的無刷新通信。

理解JavaScript引擎內部工作原理對開發者重要,因為它能幫助編寫更高效的代碼並理解性能瓶頸和優化策略。 1)引擎的工作流程包括解析、編譯和執行三個階段;2)執行過程中,引擎會進行動態優化,如內聯緩存和隱藏類;3)最佳實踐包括避免全局變量、優化循環、使用const和let,以及避免過度使用閉包。

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

Python和JavaScript在社區、庫和資源方面的對比各有優劣。 1)Python社區友好,適合初學者,但前端開發資源不如JavaScript豐富。 2)Python在數據科學和機器學習庫方面強大,JavaScript則在前端開發庫和框架上更勝一籌。 3)兩者的學習資源都豐富,但Python適合從官方文檔開始,JavaScript則以MDNWebDocs為佳。選擇應基於項目需求和個人興趣。

從C/C 轉向JavaScript需要適應動態類型、垃圾回收和異步編程等特點。 1)C/C 是靜態類型語言,需手動管理內存,而JavaScript是動態類型,垃圾回收自動處理。 2)C/C 需編譯成機器碼,JavaScript則為解釋型語言。 3)JavaScript引入閉包、原型鍊和Promise等概念,增強了靈活性和異步編程能力。

不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

JavaScript在現實世界中的應用包括服務器端編程、移動應用開發和物聯網控制:1.通過Node.js實現服務器端編程,適用於高並發請求處理。 2.通過ReactNative進行移動應用開發,支持跨平台部署。 3.通過Johnny-Five庫用於物聯網設備控制,適用於硬件交互。

我使用您的日常技術工具構建了功能性的多租戶SaaS應用程序(一個Edtech應用程序),您可以做同樣的事情。 首先,什麼是多租戶SaaS應用程序? 多租戶SaaS應用程序可讓您從唱歌中為多個客戶提供服務


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

記事本++7.3.1
好用且免費的程式碼編輯器

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

WebStorm Mac版
好用的JavaScript開發工具

SublimeText3 Linux新版
SublimeText3 Linux最新版