2011-10-03 7 views
3

私はリンクをクリックすると、ブラウザが新しいウィンドウを開きます。そのリンク上のクリックイベントのためにこのコード:open/popupについてのブラウザの警告新しいウィンドウ

var clickView = function(){ 
        window.open('/client/item/show/' + itemID); 
        return false; 
       }; 

私もAJAX呼び出しからURLを読み込み、新しいウィンドウで開き、別の機能を持っています。最初の関数(clickView)については

  if (json.data && json.data.URL) 
      { 
        if (me.urlTarget==='_self'){ 
          //use the self window to open the URL 
          window.location.href =json.data.URL; 
        } else{ 
          //use new window to open the url. 
          window.open(json.data.URL); 
        } 

      } 

、ブラウザ(IE7/8 & Firefoxの)ユーザーへの警告なしに新しいタブを開きます。 2番目の関数(urlがjson.data.URLから読み取られる)の場合、IEとFirefoxの両方に警告メッセージが表示され、ユーザーが警告に同意するまで新しいウィンドウをブロックします。どちらの関数でも、開始URLは同じです。

私はなぜ違いがあるのだろうと思っています、そして、彼らが一貫して動作することは可能ですか?

答えて

0

おそらく2番目のインスタンスは、相対URLではなく絶対URLなので、警告を生成する可能性がありますか?

(いずれにしても、新しいブラウザウィンドウを開くことは悪魔の仕事です)

+0

どちらも相対URLです。 (悲しいことに私は悪魔のために働いています:) – LazNiko

1

答えがここに表示されます。 open new window without the browser giving warning that is a popup

概要:一見ランダムなタイミングで呼び出すwindow.open()警告/プロンプトでキックするブラウザーの原因となります。リンククリックの結果としてwindow.open()を呼び出すと正常に動作します。

関連する問題