0

特定のページからポップアップを起動しようとしています。次の場合にのみ、ユーザーにポップアップを表示させたい:

a) ブラウザーのタブを閉じる b) ブラウザーの [戻る] ボタンを押す c) 購入パスの次のステップ以外のページに移動する - 基本的に、文字列「/checkout/」を含まない URL に移動する場合"。

本文 onUnload をロードするポップアップの例を見てきましたが、これは少しグローバルすぎます。彼らがチェックアウトパスを離れようとした場合に、ポップアップ(真の実際のポップアップ)が起動するようにしたいだけです。

StackOverflow に関するいくつかの質問を見てきましたが、どれも私の質問に答えていないようです。この回答https://stackoverflow.com/a/3753963/1634459で言及されている onBeforeUnload は機能する可能性があります...MIGHT ...しかし、上記の条件でそれを実装する方法が完全にはわかりません。

...ヘルプ?

使用したいポップアップウィンドウのコードは次のとおりです。

<script language="javascript" type="text/javascript">
var win=null;
function NewWindow(mypage,myname,w,h,scroll,pos){
if(pos=="center"){LeftPosition=(screen.availWidth)?(screen.availWidth-w)/2:50;TopPosition=(screen.availHeight)?(screen.availHeight-h)/2:50;}
settings='width='+w+',height='+h+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+scroll+',location=no,directories=no,status=no,menubar=no,toolbar=no,resizable=no';
win=window.open(mypage,myname,settings);
if(win.focus){win.focus();}}
function CloseNewWin(){if(win!=null && win.open)win.close()}
window.onfocus=CloseNewWin;
</script>
4

1 に答える 1

0

どうぞ; 私は前の仕事でマーケティングチームのためにこれを書きました。あなたはそれをかなり簡単に適応させることができるはずです。必要に応じてURLとパラメータを更新するだけです。

このコードは、ユーザーがチェックアウトフォームを送信して離れない限り、ユーザーがページを離れるときにポップアップを開きます。(ページに複数のフォームがあり、チェックアウトフローに含めるべきではない場合は、それも修正する必要があります。)

var nag = function () {

    return {
        // assume the user is going to leave, get ready to pounce!
        doWant: true,

        // FALCON PUNCH
        deploy: function () {
            if (nag.doWant) {

                var width = 449;
                var height = 298;

                args = "width=" + width + ",";
                args += "height=" + height + ",";
                args += "location=0" + ","
                args += "menubar=0" + ","
                args += "resizable=1" + ","
                args += "scrollbars=0" + ","
                args += "status=0" + ","
                args += "titlebar=0" + ","
                args += "toolbar=0" + ","
                args += "hotkeys=0"

                var demo_window = window.open("YOUR_URL", "main", args);

                try {
                    demo_window.focus();
                } catch (err3) { };
            }
        },

        // oh, off to step 2? that's cool. carry on.
        ignore: function () {
            nag.doWant = false;
        }
    }
} ();

window.onunload = nag.deploy;
document.forms[0].onsubmit = nag.ignore;

ユーザーがページを離れるのを止めたい場合は、その更新をお手伝いします。

于 2012-09-21T20:42:05.650 に答える