いくつかの重要でない理由ではなく、javascriptを使用してリンクを作成する必要があります。また、使用していない場合でも、JavaScriptを同じように動作させたいと考えています。影響は簡単ではありませんが、Shiftキーを押しながらクリックして新しいウィンドウを開き、Ctrlキーを押している場合は新しいタブで開くことができるようにしたいと思います。どうすればいいですか?また、IE9と互換性がある必要があります。
[編集]また、これはiframeに含まれる予定です
いくつかの重要でない理由ではなく、javascriptを使用してリンクを作成する必要があります。また、使用していない場合でも、JavaScriptを同じように動作させたいと考えています。影響は簡単ではありませんが、Shiftキーを押しながらクリックして新しいウィンドウを開き、Ctrlキーを押している場合は新しいタブで開くことができるようにしたいと思います。どうすればいいですか?また、IE9と互換性がある必要があります。
[編集]また、これはiframeに含まれる予定です
キーストロークイベントリスナーをウィンドウまたはドキュメントにバインドし、そのコールバック関数を使用して必要なことをすべて実行します。
jqueryを使用すると、より信頼性の高いキーストロークリスナーであるimhoを作成するのが少し簡単になります。http://blog.cnizz.com/2008/10/27/javascript-key-listener/
私はあなたがこのようなものが欲しいと思います:
JSFiddle
JavaScript
var ctrlPressed = false;
$('#link').click(function () {
var link = 'http://stackoverflow.com/';
if (ctrlPressed) {
window.open(link,'_blank');
} else {
window.location = link;
}
return false;
});
$(document).keydown(function (e) {
if (e.keyCode === 17) {
ctrlPressed = true;
}
});
$(document).keyup(function (e) {
if (e.keyCode === 17) {
ctrlPressed = false;
}
});
</ p>
HTML
<span id="link">Link to stackoverflow</span>
<strong>jQueryを含まないバージョン
JSFiddle
JavaScript
function addEvent(el, eType, fn, uC) {
if (el.addEventListener) {
el.addEventListener(eType, fn, uC);
return true;
} else if (el.attachEvent) {
return el.attachEvent('on' + eType, fn);
} else {
el['on' + eType] = fn;
}
}
var ctrlPressed = false,
a = document.getElementById('link'),
link = 'http://stackoverflow.com/';
addEvent(a, 'click', function () {
if (ctrlPressed) {
window.open(link,'_blank');
} else {
window.location = link;
}
return false;
});
addEvent(document, 'keydown', function (e) {
if (e.keyCode === 17) {
ctrlPressed = true;
}
});
addEvent(document, 'keyup', function (e) {
if (e.keyCode === 17) {
ctrlPressed = false;
}
});
</ p>
だから、これはあなたが望むものです:http://jsfiddle.net/DerekL/V8yzF/show
$("a").click(function(ev) {
if (ev.ctrlKey) { //If ctrl
window.open(this.attr("href"));
retrun false;
} else if (ev.shiftKey) { //If shift
window.open(this.attr("href"),"_blank", "width=400,height=300");
retrun false;
} else { //If nothing
//do nothing
}
});