解決したいこと
サイトからユーザーが出ようとした時に(ページバック)バナーを表示したい。
現状
Chromeではサイトから出る時のみバナーを表示できています。
ですが、別ブラウザ(safari・firefox)や別デバイス(iphoneなど)では、別のタイミングでバナーが表示されてしまいます。
Chrome以外では、ランディングページからサイト内リンクに飛んだ後、ランディングページに戻ったタイミングでバナーが表示されてしまう(ランディングページからサイトを出るタイミングでバナーを出したい)。
検証
Chromeのみ機能するのは、ページバックするときに再読み込みされるからのようです。
Chromeと同じようなページバックを実装しようと、location.reloadなどを試みましたが、これだとreferrerの情報が消えてしまい、Chromeと同じような挙動にはなりませんでした。
お力添えよろしくお願い致します。
javascript
1 const current_url = window.location.hostname; 2 let before_url; 3 if ( document.referrer ) { 4 before_url = document.referrer.match(/^https?:/{2,}(.*?)(?:/|?|#|$)/)[1]; //リンク元ドメイン 5 } else { 6 before_url =document.referrer = "○○○○○○○○○○○○○○○○" 7 } 8 if ( current_url != before_url ) { //ランディングページか判定 9 history.pushState(null, null, location.href); //戻る制御 10 window.addEventListener('popstate', (e) => { 11 document.getElementById("campaign-banner-modal").style.display = "block"; 12 document.getElementById("campaign-banner-close").onclick = function() { 13 document.getElementById("campaign-banner-modal").style.display = "none"; 14 document.cookie = "visited=true"; 15 window.location.href = LINK_SOURCE_URL; 16 }; 17 }); 18 }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。