Antworten:
Sie können mögen:
window.open('url', 'window name', 'window settings')
jQuery:
$('a#link_id').click(function(){
window.open('url', 'window name', 'window settings');
return false;
});
Sie könnten auch die Set targetzu _blanktatsächlich.
So erzwingen Sie das Ziel in einem Klick-Handler:
$('a#link_id').click(function() {
$(this).attr('target', '_blank');
});
$(this).attr('target', '_blank'); in geändert werden this.target = "_blank";kann. Wenn die Ankerlinks auf der Seite so geändert werden können, dass sie rel="external"Attribute enthalten, können Sie einen globalen Klick-Handler für die Seite mit dem jQuery-Selektor erstellen, a[rel="external"]anstatt einen zu haben Klicken Sie auf den Handler pro ausgewähltem Link mita#link_id
Sie müssen verwenden window.open(url);
Referenzen:
http://www.htmlcodetutorial.com/linking/linking_famsupp_120.html
http://www.w3schools.com/jsref/met_win_open.asp
Ich habe gerade eine interessante Lösung für dieses Problem gefunden. Ich habe Bereiche erstellt, die Informationen enthalten, die auf der Rückgabe eines Webdienstes basieren. Ich dachte darüber nach, einen Link um die Spanne zu setzen, damit das "a" den Klick erfasst, wenn ich darauf klicke.
Aber ich habe versucht, den Klick mit der Spanne zu erfassen ... also dachte ich mir, warum ich das nicht tun sollte, als ich die Spanne erstellte.
var span = $('<span id="something" data-href="'+url+'" />');
Ich habe dann einen Klick-Handler an den Bereich gebunden, der einen Link basierend auf dem Attribut 'data-href' erstellt hat:
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'));
});
Dadurch konnte ich erfolgreich auf eine Spanne klicken und ein neues Fenster mit einer richtigen URL öffnen.
Was ist los mit <a href="myurl.html" target="_blank">My Link</a>? Kein Javascript erforderlich ...
Diese Lösung berücksichtigte auch den Fall, dass die URL leer ist und der leere Link deaktiviert (grau) ist.
$(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>
Beachten Sie, ob Sie AJAX-Anforderungen in der Ereignishandlerfunktion für das Klickereignis ausführen möchten . Aus irgendeinem Grund öffnet Chrome (und möglicherweise andere Browser) keinen neuen Tab / Fenster.
Dies ist keine sehr schöne Lösung, aber es funktioniert:
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();
});
Live-Beispiel: http://jsfiddle.net/7eRLb/
Microsoft IE unterstützt keinen Namen als zweites Argument.
window.open('url', 'window name', 'window settings');
Problem ist window name. Das wird funktionieren:
window.open('url', '', 'window settings')
Microsoft lässt nur die folgenden Argumente zu, wenn dieses Argument überhaupt verwendet wird: