-3

ユーザーが 1 ページだけを表示した後にサイトを離れた場合に、ユーザーにメッセージを表示する方法を探しています。

私はこれ ( http://www.pgrs.net/2008/1/30/popup-when-leaving-website ) の巧妙な解決策を見つけましたが、いくつかの欠点があります:

staying_in_site = false;

Event.observe(document.body, 'click', function(event) {
  if (Event.element(event).tagName == 'A') {
    staying_in_site = true;
  }
});

window.onunload = popup;

function popup() {
  if(staying_in_site) {
    return;
  }
  alert('I see you are leaving the site');
}

ページを更新したり、戻るボタンを使用したときにもメッセージが表示されます。

上記のコードでより良い解決策または修正方法を知っていますか? 私はJavaScriptマスターではありません:)

私の意図は、非常に特定のランディング ページにのみコードを追加し、試用版ソフトウェアをダウンロードしたり、サイトの他のページを読んだりせずにページを離れたときにメッセージを表示することです。

4

3 に答える 3

6

まず、これを行うことを決してお勧めしません。これは悪い習慣です。ユーザーを苛立たせるだけでなく、非常に必死に見えるようになります。繰り返しますが、これをしないでください。それは良い考えではありません。ばかげており、良い考えではありません。

しかし、それを行う方法は、ユーザーがサイトから離れたリンクをクリックしたときにのみメッセージを表示することです. これを行うには、リンクの属性を見て、hrefそれが外部サイトかどうかを確認します。存在する場合は、メッセージを表示します

しかし、繰り返しますが、これをしないでください。

于 2010-05-02T15:32:43.310 に答える
2

を許していただけるかもしれませんwindow.onbeforeunload。しかし、それだけです!

于 2010-05-02T15:45:23.183 に答える
1

これが非常に便利な場合があり、この機能がないと煩わしい場合があります。私がクライアント用に開発したアプリケーションの 1 つは、ユーザーがページに大量のデータ (25 フィールド近く) を入力する必要がありました。フォームがより多くのページに分割されていれば、より良く、より使いやすくなっていたことはわかっていますが、それはここでのポイントではありません。従業員 (ほとんどの場合、コンピューターの使用に精通しているわけではありません) がデータを入力したものの、何らかの理由で送信せずにページを離れてしまい (偶然だと思います)、フラストレーションを感じることがありました。その場合、私は喜んでそうしwindow.onbeforeunloadました。

于 2011-06-10T21:40:50.827 に答える