回答:
あなたは好きになることができます:
window.open('url', 'window name', 'window settings')
jQuery:
$('a#link_id').click(function(){
window.open('url', 'window name', 'window settings');
return false;
});
また、設定することができますtarget
し_blank
、実際に。
クリックハンドラ内にターゲットを強制する方法は次のとおりです。
$('a#link_id').click(function() {
$(this).attr('target', '_blank');
});
$(this).attr('target', '_blank');
をに変更できます。this.target = "_blank";
また、ページのアンカーリンクをrel="external"
属性に変更できる場合は、jQueryセレクターを使用するのa[rel="external"]
ではなく、jQueryセレクターを使用してページのグローバルクリックハンドラーを作成できます。で選択されたリンクごとのクリックハンドラa#link_id
使用する必要があります window.open(url);
参照:
http : //www.htmlcodetutorial.com/linking/linking_famsupp_120.html
http://www.w3schools.com/jsref/met_win_open.asp
この問題の興味深い解決策を見つけました。Webサービスからの戻りに基づいた情報を含むスパンを作成していました。スパンの周りにリンクを配置して、クリックすると「a」がクリックをキャプチャできるようにすることを考えました。
しかし、スパンでクリックをキャプチャしようとしていました...スパンを作成するときに、なぜこれをしないのかと思いました
var span = $('<span id="something" data-href="'+url+'" />');
次に、「data-href」属性に基づいてリンクを作成したスパンにクリックハンドラーをバインドしました。
span.click(function(e) {
e.stopPropagation();
var href = $(this).attr('data-href');
var link = $('<a href="http://' + href + '" />');
link.attr('target', '_blank');
window.open(link.attr('href'));
});
これにより、スパンをクリックして適切なURLで新しいウィンドウを開くことができました。
何が問題になってい<a href="myurl.html" target="_blank">My Link</a>
ますか?JavaScriptは必要ありません...
このソリューションでは、URLが空で、空のリンクが無効(灰色)である場合も考慮されました。
$(function() {
changeAnchor();
});
function changeAnchor() {
$("a[name$='aWebsiteUrl']").each(function() { // you can write your selector here
$(this).css("background", "none");
$(this).css("font-weight", "normal");
var url = $(this).attr('href').trim();
if (url == " " || url == "") { //disable empty link
$(this).attr("class", "disabled");
$(this).attr("href", "javascript:void(0)");
} else {
$(this).attr("target", "_blank");// HERE set the non-empty links, open in new window
}
});
}
a.disabled {
text-decoration: none;
pointer-events: none;
cursor: default;
color: grey;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<a name="aWebsiteUrl" href="http://www.baidu.com" class='#'>[website]</a>
<a name="aWebsiteUrl" href=" " class='#'>[website]</a>
<a name="aWebsiteUrl" href="http://www.alibaba.com" class='#'>[website]</a>
<a name="aWebsiteUrl" href="http://www.qq.com" class='#'>[website]</a>
クリックイベントのイベントハンドラー関数内でAJAX要求を実行する場合は注意してください。何らかの理由でChrome(およびおそらく他のブラウザー)は新しいタブ/ウィンドウを開きません。
これはあまり良い修正ではありませんが、うまくいきます:
CSS:
.new-tab-opener
{
display: none;
}
HTML:
<a data-href="http://www.google.com/" href="javascript:">Click here</a>
<form class="new-tab-opener" method="get" target="_blank"></form>
JavaScript:
$('a').on('click', function (e) {
var f = $('.new-tab-opener');
f.attr('action', $(this).attr('data-href'));
f.submit();
});
ライブの例:http : //jsfiddle.net/7eRLb/
Microsoft IEは、2番目の引数として名前をサポートしていません。
window.open('url', 'window name', 'window settings');
問題はwindow name
です。これは動作します:
window.open('url', '', 'window settings')
Microsoftは、次の引数のみを許可します。その引数を使用する場合: