1

以下のスクリプトを使用して、クーポン ウィンドウを自動的にポップアップします。ただし、予想どおり、Chrome およびその他のブラウザーはポップアップをブロックしています。これがポップアップ ブロッカーによってブロックされないようにする方法はありますか? また、どうすれば中央に配置できますか?

コード:

<SCRIPT LANGUAGE="JavaScript">
<!--
function GetCookie(name) {
  var arg=name+"=";
  var alen=arg.length;
  var clen=document.cookie.length;
  var i=0;
  while (i<clen) {
    var j=i+alen;
    if (document.cookie.substring(i,j)==arg)
      return "here";
    i=document.cookie.indexOf(" ",i)+1;
    if (i==0) break;
  }
  return null;
}
var visit=GetCookie("COOKIE1");
if (visit==null){
   var expire=new Date();
    window.name = "thiswin";
    newwin=open("popup.html", "dispwin",  
    "width=730,height=424,scrollbars=no,menubar=no");
   document.cookie="COOKIE1=here; expires=Thu 01-01-2004 00:00:00 GMT;";
}
// -->
</SCRIPT>
4

2 に答える 2

2

これがポップアップ ブロッカーによってブロックされないようにする方法はありますか?

はい:window.openなどのユーザー生成イベントのイベント ハンドラー内から呼び出しますclick。これは、ブラウザがポップアップをブロックするかどうかを決定する際に使用する主要な基準です。これは、ユーザーが何かを要求したことを少なくともある程度示しているためです。


このような場合は、ポップアップではなく、バナー バーなどを使用することを強くお勧めします。HTML の上部にあるマークアップには、次のようなものがあります。

<div id="first-time-banner" style="display: none">text here</div>

そして、そのコードの最後のビットを次のように変更します。

if (visit==null){
   var expire=new Date();
   document.getElementById("first-time-banner").style.display = "block";
   document.cookie="COOKIE1=here; expires=Thu 01-01-2004 00:00:00 GMT;";
}

これにより、Cookie をまだ設定していないユーザーにバナーが表示されます。おそらく、ユーザーがバナーを閉じることができる何かをバナーに入れたいと思うでしょう。これには、要素 (閉じるボタンなど) にユーザー イベントをフックすることが含まれます。例えば:

<div id="first-time-banner" style="display: none">
    text here
    <span id="first-time-banner-close">X</span>
</div>

...スタイリングspanで見栄えを良くします。それで:

document.getElementById("first-time-banner-close").onclick = function() {
    document.getElementById("first-time-banner").style.display = "none";
};

(接続する方法は他にもありますが、少し複雑です。)

于 2013-06-07T21:47:11.297 に答える