0

私は jQuery が苦手で、最近壁にぶつかっています。ユーザーがindex.htmlでトリガーすると開くjQuery UIダイアログがあります。ユーザーがトリガーして開くまで、index.html に表示されません。別の html ページである別のページに、index.html に戻るためのボタンがありますが、ユーザーがこのリンクをクリックすると、index.html に戻り、ダイアログがトリガーされる必要があります。モーダルウィンドウが自動的に開きます。

ある程度は機能していますが、URL を使用しない代替ソリューションを見つけて機能させたいと考えていました。

「戻る」リンクの HTML

<a href="index.html#dialog">Go back</a>

私のjQuery:

if (location.href.indexOf("#dialog") != -1) {

$('.dialog-popup').dialog("open"); 

}

UI ポップアップの jQuery:

$( ".dialog-popup" ).dialog({
  autoOpen: false,
  modal: true,
  width: 860,
  show: {
    effect: "fade",
    duration: 500
  },
  hide: {
    effect: "fade",
    duration: 500
  }
});

ここで何か助けていただければ幸いです。#dialog を URL に入れなくても機能するようにしたい。

4

1 に答える 1

0

document.referrerユーザーの出身地を特定するために使用できます。ユーザーが来たページに関する情報について document.referrer を解析し、それを何かと照合すると、そのようにダイアログをトリガーできます。

たとえば、ユーザーが index.html 自体からではなく、ドメイン上のページから index.html にアクセスするたびにダイアログをトリガーする場合は、次のコードを実行できます。

jQuery(function($){

    var referrerDomain = document.referrer.replace(/(http|https):\/\//,'').split("/")[0];
    var myDomain = "mydomain.net"; //Your domain name goes here
    if( referrerDomain == myDomain && !document.referrer.match("index.html") )
        alert('You arrived at this page from your domain, but not from index.html!')

});

このフィドルに見られるように(フルスクリーン版はこちら

注 - フィドルは、現在表示しているページと同じリファラーを表示します。これは通常のページでは発生しません。iFrames を使用しているため、そこで起こっているだけです。

于 2013-05-21T00:19:02.857 に答える