2012-03-01 5 views
1

ポップアップでwindow.createPopup();で開くリンクを指定する必要があります。ハイパーリンクをポップアップウィンドウから作成するにはどうすればよいですか?

リンクをクリックしても何も起こりません。ブラウザはhref属性を無視しているようです。このリンク上の

<a href="test.html">test</a> 

クリックすると、「test.htmlという」にリダイレクトされません - それはhref="#"だろうのように何も起こりません。

「このメソッドはIEのみのため、使用しないでください」とコメントしてください。

私はターゲットを指定する必要があることを読んだ。

リンクを有効にするにはどうすればよいですか?

答えて

1

IEのポップアップオブジェクトは、個別のドキュメントを持つ別々のウィンドウであり、フォーカスを取ることができず、ナビゲートできません。私の推測では、とにかくポップアップウィンドウをナビゲートしたくない場合は、おそらくポップアップのオープナーをナビゲートしたいと思うでしょう。

var myPopup = window.createPopup(); 

// Make a connection between the popup and the current window 
myPopup.document.parentWindow.owner = window; 

を次に、あなたのHTMLやJavaScriptコードでは、所有者を作るためにリンクにイベントハンドラを追加します。あなたが使用できる1つのトリックは、あなたがポップアップオブジェクトを作成するときに、親ウィンドウへの参照を設定することですウィンドウには、指定されたhrefに移動します。

<a href="test.html" onclick="owner.location = this.href;">test</a> 

を別の方法として、あなたはDOMを経由してリンクを作成している場合は、単に作成時にそれらを追加します。

var myPopup = window.createPopup(), 
    link = myPopup.document.createElement("a"); 

link.href = "test.html"; 
link.onclick = function() { 
    // window refers to the main window, not the popup window 
    window.location = this.href; 
} 

myPopup.document.body.appendChild(link); 
+0

が動作しています。私は右クリックをしてリンクを新しいウィンドウで開こうとすると、これも機能していると思いますか? –

+1

@KeithL:あなたはそれを修正できるとは思わない。おそらく、 'event.ctrlKey'のチェックを追加し、' window.location() 'の代わりに' window.open'を使うことができます。私があなただったら、ポップアップウィンドウ全体のコンテキストメニューを無効にします(かなり役に立たないです)。 –

関連する問題