やりたいことは、『Monacaで、特定のサイトをIframeで読み込み、その中のAタグを検出し、特定のサイト以外のサイトならInAppBrowserで開く』という動作です。
この質問への回答を参考にしました。
https://teratail.com/questions/149548
実際に書いたJSは後述の通り、条件としては、
・ jquery-1.10.1.js
・ CLI Ver 10.0.0
・ InAppBrowser 5.0
です。
しかし、Monacaでデバッグビルドしてiphone(iOS14)でアプリを開くと、外部リンクをタップした時にInAppBrowserが開かず、普通に遷移してしまいます。
追記 20210728 AM3:00
・ CLI Ver 9.0.0
・ InAppBrowser 3.1
に戻したら動きました。
何故最新バージョンだと動かないのでしょうか・・・
javascript
1 $(function(){ 2 $('a').click(function(){ 3 return false; 4 }); 5 }); 6 7 $(function(){ 8 $('iframe').load(function(){ 9 $('iframe').contents().find('a').click(function(){ 10 var href = $(this).attr("href"); 11 //外部サイトかどうか判定して、もし外部サイトならInAppBrowserを使う 12 if(href.indexOf("ドメイン名") != -1) { 13 scrollTo(0, 0); 14 }else{ 15 if(href != '#') { 16 //window.open = cordova.InAppBrowser.open; 17 //window.open(href, "_blank", 'location=yes'); 18 var ref = cordova.InAppBrowser.open(href, '_blank', 'location=yes'); 19 return false; 20 event.preventDefault(); 21 event.stopPropagation(); 22 } 23 } 24 }); 25 }); 26 });
このあたりお詳しい方がいらっしゃいましたらご教授頂けますと幸いです。
あなたの回答
tips
プレビュー