SafariまたはIE7で新しいタブを使用して新しいページを開くように「強制」しようとしています。
プログラム的に私は次のようなものを意味します:
window.open('page.html','newtaborsomething');
SafariまたはIE7で新しいタブを使用して新しいページを開くように「強制」しようとしています。
プログラム的に私は次のようなものを意味します:
window.open('page.html','newtaborsomething');
回答:
これはInternet Explorerユーザーが制御するオプションであるため、直接制御することはできません。
別のウィンドウ名でWindow.openを使用して開くページがポップアップ、などの新しいブラウザウィンドウで開きますORユーザーがそうするようにブラウザを設定した場合、新しいタブで開いています。
Firefoxでは機能しますが、新しいタブを強制的に開くために、アンカーに属性target = "_ newtab"を追加できます。
<a href="some url" target="_newtab">content of the anchor</a>
JavaScriptで使用できます
window.open('page.html','_newtab');
と私はサムに部分的に同意します。ユーザーがリンクをクリックする前に何が起こるかについてのヒントをユーザーに示さずに、ユーザーに新しいページまたは新しいタブを開かせてはいけません。
他のブラウザでも動作するかどうか教えてください(現時点では、Firefox以外のブラウザで試すことはできません)。
編集:ie7への参照を追加多分このリンクは役に立つかもしれません
http://social.msdn.microsoft.com/forums/en-US/ieextensiondevelopment/thread/951b04e4-db0d-4789-ac51-82599dc60405/
以下を使用しようとしている人:
window.open('page.html', '_newtab');
本当にwindow.openメソッドを見てください。
あなたがしているのは、ブラウザに「_newtab」という名前の新しいウィンドウを開き、page.htmlをロードするように指示することだけです。ロードするすべての新しいページは、そのウィンドウにロードされます。ただし、ユーザーが新しいウィンドウではなく新しいタブで新しいページを開くようにブラウザを設定している場合は、タブが開きます。とにかく、ウィンドウまたはタブに同じ名前を使用しています。
別のページを別のウィンドウまたはタブで開く場合は、新しいウィンドウ/タブの名前を次のような別の名前に変更する必要があります。
window.open('page2.html', '_newtab2');
もちろん、新しいウィンドウ/タブの名前は、_newtab2ではなく、page1、page2、page3などの任意の名前にすることができます。
新しいタブを使用するか新しいウィンドウを使用するかはユーザー次第であり、この動作を変更するのは開発者の仕事ではありません。できるとは思いません。
私のペットピーブ-サイトが新しいウィンドウ/タブで開くように強制するとき、私はそれを嫌います-私は自分でその決定をすることがかなりできます。特に彼らがJavaScriptでそれをするとき-それは本当に役に立たない。
すでに試しましたか
var open_link = window.open('','_blank');
open_link.location="somepage.html";
jQueryで使用するコード:
$("a.btn_external").click(function() {
url_to_open = $(this).attr("href");
window.open(url_to_open, '_blank');
return false;
});
これは、子の親のクリックイベントを区別するのに役立ちます。このメソッドを使用すると、親のクリックイベントはトリガーされません。
<a href="page.html" target="_blank">foo</a>
少しハッキーですが、必要な機能を提供するこのメソッドを使用したい場合:
jQuery('<a/>', {
id: 'foo',
href: 'http://google.com',
title: 'Become a Googler',
rel: 'external',
text: 'Go to Google!',
target:'_blank',
style:'display:none;'
}).appendTo('#mySelector');
$('#foo').click()
これは、バッチファイルを呼び出すことができる場合に機能する可能性があります(私は、XP sp2およびIE8でphpを使用しています... IE7、dunnoを試すことができます)。.batファイルで次の(または同様の)ファイルを使用して、Windowsを開きます。「C:\ Progra〜1 \ Intern〜1 \ iexplore "http://www.site.com"を起動します。引用符とC:\ Progr ...などの間にスペースはありません。ある時点で、これは新しいタブではなく新しいウィンドウ(つまり、target = "_ blank")を開き始めますが、ある程度まで機能します。十分にテストされていません。これを通常のバッチファイル(CMD.exe)で使用するには、ウィンドウを既に開いている必要があります。偶然見つけたものを共有するだけです。明確化のために編集。
<a href="http://www.google.com/" target="_self">New Tab Example</a>
IE7で動作します。
よろしく、
グレン