
嘻道奇闻
- 文章199742
- 阅读14625734
移动端JS窗体关闭失效?种解决方案与代码示例
浣犳槸涓嶆槸涔熼亣鍒拌繃杩欑鎯呭喌锛?/h3>
濂戒笉瀹规槗鐢ㄢ€?strong>鈥媤indow.close()鈥?/strong>鈥嬪啓浜嗕釜鍏抽棴鎸夐挳锛屽湪鐢佃剳涓婃祴璇曞畬缇庤繍琛岋紝缁撴灉涓€鍒版墜鏈虹灏扁€滆姝烩€濃€斺€旂偣鍗佹閮芥病鍙嶅簲锛佹皵寰楁兂鐮告墜鏈烘槸鍚э紵鍒厡锛屼粖澶╁挶浠氨鎺板紑鎻夌浜嗚亰鑱婏紝涓哄暐绉诲姩绔疛S鍏崇獥杩欎箞闅炬悶锛屽張鏈夊摢浜涒€?strong>鈥嬫帴鍦版皵鐨勮В鍐虫柟妗堚€?/strong>鈥嬨€?/p>
涓€銆佷负鍟ョЩ鍔ㄧ鍏崇獥杩欎箞闅撅紵娴忚鍣ㄥ湪闃茶醇鍛紒
鍏堣涓ぇ瀹炶瘽锛氣€?strong>鈥嬩笉鏄綘鐨勪唬鐮佸啓寰楃儌锛屾槸娴忚鍣ㄦ晠鎰忔嫤鐫€鈥?/strong>鈥嬶紒锛堢綉椤?銆佺綉椤?锛?br/> 绉诲姩绔祻瑙堝櫒涓轰簡闃叉娴佹皳缃戦〉鎼炰簨鎯咃紝缁橨S鍏崇獥鍔熻兘涓婁簡涓夐亾閿侊細
- 鈥?strong>鈥嬪繀椤荤敱JS鑷繁寮€鐨勭獥鍙f墠鑳藉叧鈥?/strong>鈥嬶紙姣斿閫氳繃window.open鍒涘缓鐨勫脊绐楋級
- 鈥?strong>鈥嬪繀椤诲拰鐢ㄦ埛鏈変簰鍔ㄦ墠鑳借Е鍙戔€?/strong>鈥嬶紙姣斿鐐瑰嚮鎸夐挳鍚庣殑鎿嶄綔锛?/li>
- 鈥?strong>鈥媔OS鍜屽畨鍗撹鍒欒繕涓嶄竴鏍封€?/strong>鈥嬶紙鑻规灉绠″緱鏇翠弗锛屼綘鎳傜殑锛?/li>
涓句釜鏍楀瓙馃尠锛?/p>
javascript澶嶅埗// 鐢佃剳绔殢渚跨敤鐨勪唬鐮侊紝鍒版墜鏈哄氨鍚冪槳 window.close() // 澶ч儴鍒嗗畨鍗撴満杩樿兘鎸f墡涓嬶紝iOS鐩存帴瑁呮
浜屻€佷笁鎷涚牬瑙gЩ鍔ㄧ鍏崇獥闅鹃
绗竴鎷涳細鈥?strong>鈥嬬敤鎴风偣鍑昏Е鍙戞硶鈥?/strong>鈥嬶紙缃戦〉2銆佺綉椤?锛?/h4>
鈥?strong>鈥嬮€傜敤鍦烘櫙鈥?/strong>鈥嬶細鏀粯鎴愬姛椤点€佽〃鍗曟彁浜ら〉
html杩愯澶嶅埗<button onclick="safeClose()">鐐规垜瀹夊叏鍏抽棴button> <script> function safeClose() { // 鍏抽敭鎿嶄綔锛氫吉閫犵獥鍙f墦寮€璁板綍 window.open('', '_self') // 鍋囪鏄柊寮€鐨勭獥鍙?/span> window.close() // 鐜板湪鍙互鍏充簡锛?/span> } script>
鈥?strong>鈥嬫敞鎰忕偣鈥?/strong>鈥嬶細
- 杩欐嫑鍦ㄥ井淇℃祻瑙堝櫒閲屽彲鑳藉け鏁堬紙杩欎釜鑰佸叚鎬绘槸鎼炵壒娈婏級
- 瀹夊崜10浠ヤ笂绯荤粺闇€瑕佸厛鏈夌敤鎴蜂氦浜掑姩浣滐紙姣斿鐐瑰嚮浜嬩欢锛?/li>
绗簩鎷涳細鈥?strong>鈥嬪巻鍙茶褰曞洖閫€娉曗€?/strong>鈥嬶紙缃戦〉6銆佺綉椤?锛?/h4>
鈥?strong>鈥嬮€傜敤鍦烘櫙鈥?/strong>鈥嬶細鍗曢〉搴旂敤璺宠浆銆丠5娓告垙閫€鍑?/p>
javascript澶嶅埗function fakeClose() { window.history.back() // 鍋囪鏄繑鍥炴搷浣?/span> setTimeout(() => { window.close() // 鍙岄噸淇濋殰 }, 500) }
鈥?strong>鈥嬩紭鍔库€?/strong>鈥嬶細
- 缁曡繃娴忚鍣ㄦ娴嬫満鍒?/li>
- 鍏煎鎬ф瘮鐩存帴鍏崇獥濂?0鍊?/li>
鈥?strong>鈥嬪潙鐖规儏鍐碘€?/strong>鈥嬶細
- 濡傛灉褰撳墠椤垫槸绗竴涓巻鍙茶褰曪紝杩欐嫑灏卞簾浜?/li>
- 閮ㄥ垎鎵嬫満浼氬脊鍑?纭畾绂诲紑椤甸潰锛?鐨勬彁绀?/li>
绗笁鎷涳細鈥?strong>鈥嬭法绔仈鍚堝嚭鍑烩€?/strong>鈥嬶紙缃戦〉8銆佺綉椤?锛?/h4>
鈥?strong>鈥嬮€傜敤鍦烘櫙鈥?/strong>鈥嬶細APP鍐呭祵H5椤甸潰
java澶嶅埗// 瀹夊崜绔唬鐮?/span> webView.addJavascriptInterface(new Object() { @JavascriptInterface public void closeWebview() { finish() } }, "AndroidBridge") // H5椤甸潰浠g爜
鈥?strong>鈥嬪姣斾紭鍔库€?/strong>鈥嬶細
鏂规 | 鎴愬姛鐜?/th> | 鎶€鏈毦搴?/th> | 閫傜敤鍦烘櫙 |
---|---|---|---|
绾疛S鏂规 | 60% | 猸?/td> | 绠€鍗旽5椤甸潰 |
鍘嗗彶鍥為€€娉?/td> | 80% | 猸愨瓙 | 鍗曢〉搴旂敤 |
鍘熺敓浜や簰 | 100% | 猸愨瓙猸愨瓙 | APP鍐呭祵椤甸潰 |
涓夈€佽繖浜涢獨鎿嶄綔鍗冧竾鍒瘯锛?/h3>
鐪嬪埌缃戜笂鏈変汉璇寸敤杩欎簺鏂规硶锛岃刀绱ц窇锛?/p>
- 鈥?strong>鈥媗ocation.href璺宠浆娉曗€?/strong>鈥嬶紙缃戦〉4锛?/li>
javascript澶嶅埗window.location.href = "about:blank" // 鎯虫竻绌洪〉闈紵鎵嬫満浼氬綋浣犲湪鎼炶瘓楠楋紒
- 鈥?strong>鈥嬪畾鏃跺櫒寮哄叧娉曗€?/strong>鈥?/li>
javascript澶嶅埗setTimeout(() => { window.close() }, 1000) // 娌℃湁鐢ㄦ埛浜や簰锛熸祻瑙堝櫒鐩存帴鏃犺
- 鈥?strong>鈥嬫棤闄愬脊绐楁敾鍑烩€?/strong>鈥?/li>
javascript澶嶅埗while(true){ window.open() } // 淇℃垜锛屾墜鏈轰細鐩存帴闂€€缁欎綘鐪?
鍥涖€佽繃鏉ヤ汉鐨勮娉粡楠?/h3>
骞蹭簡浜斿勾H5寮€鍙戠殑鑰佸徃鏈洪€佷綘涓夊彞鐪熻█锛?/p>
- 鈥?strong>鈥嬭兘鐢ㄦ寜閽氨鍒帺鑷姩鈥?/strong>鈥嬶紙鐢ㄦ埛涓嶇偣鍑伙紝绁炰粰涔熸晳涓嶄簡锛?/li>
- 鈥?strong>鈥媔OS鍜屽畨鍗撹鍒嗗紑鍐欌€?/strong>鈥嬶紙姣斿iOS鍙互鐢╓KWebView鐨勭壒娈夾PI锛?/li>
- 鈥?strong>鈥嬮噸瑕佹搷浣滃姞鍙屼繚闄┾€?/strong>鈥嬶紙鍏崇獥鍓嶅厛寮逛釜纭鎻愮ず锛?/li>
涓句釜鐪熷疄妗堜緥锛?br/> 鍘诲勾鍋氬尰鐤楅棶璇婄郴缁燂紝鎮h€呮彁浜ら棶璇婂崟鍚庨渶瑕佽嚜鍔ㄥ叧绐椼€傜粨鏋滃湪鍗庝负Mate40涓婅繍琛屾甯革紝鍒颁簡iPhone13灏卞崱澹炽€傛渶鍚庣敤浜嗕釜鈥?strong>鈥嬬粍鍚堟嫵鈥?/strong>鈥嬫墠鎼炲畾锛?/p>
javascript澶嶅埗function superClose() { // 鍏堝皾璇曟缁忓叧闂?/span> if(window.close()) return // 涓嶈灏变吉閫犲巻鍙茶褰?/span> if(window.history.length > 1) { window.history.go(-1) } else { // 缁堟瀬鏉€鎷涳細璺崇┖鐧介〉 window.location.href = "about:blank" setTimeout(() => { window.close() }, 200) } }
璇寸偣鎺忓績绐濆瓙鐨勮瘽
鍏跺疄娴忚鍣ㄩ檺鍒跺叧绐楀姛鑳芥槸濂戒簨锛屾兂鎯宠鏄殢渚垮摢涓綉椤甸兘鑳芥倓鍜挭鍏充綘椤甸潰锛岄偅鎵嶅彨鍙€曘€傚挶浠紑鍙戣€呰鍋氱殑锛屽氨鏄湪鈥?strong>鈥嬬敤鎴蜂綋楠屸€?/strong>鈥嬪拰鈥?strong>鈥嬪畨鍏ㄨ鑼冣€?/strong>鈥嬩箣闂存壘鍒板钩琛$偣銆?/p>
鏈€杩戝彂鐜颁釜鏂拌秼鍔匡紙缃戦〉1銆佺綉椤?0锛夛紝鍍廋hrome姝e湪娴嬭瘯鐨勨€?strong>鈥媁indow Management API鈥?/strong>鈥嬶紝璇翠笉瀹氫互鍚庤兘鍏夋槑姝eぇ鍏抽〉闈簡銆備笉杩囧湪杩欎箣鍓嶏紝杩樻槸鑰佽€佸疄瀹炵敤浠婂ぉ璇寸殑杩欎簺鏂规硶鍚э紒
璁颁綇锛氱Щ鍔ㄧ寮€鍙戝氨鍍忚皥鎭嬬埍锛屽緱椤虹潃娴忚鍣ㄧ殑鑴炬皵鏉ャ€傚畠璇翠笉鑳界‖鍏筹紝鍜变滑灏辨俯鏌旂偣鍝勭潃鍏炽€傚彧瑕佹懜娓呭璺紝娌℃湁鍏充笉鎺夌殑绐楀彛锛屽彧鏈夎繕娌℃壘鍒扮殑姝g‘濮垮娍锛?/p>