0

いくつかの重要でない理由ではなく、javascriptを使用してリンクを作成する必要があります。また、使用していない場合でも、JavaScriptを同じように動作させたいと考えています。影響は簡単ではありませんが、Shiftキーを押しながらクリックして新しいウィンドウを開き、Ctrlキーを押している場合は新しいタブで開くことができるようにしたいと思います。どうすればいいですか?また、IE9と互換性がある必要があります。

[編集]また、これはiframeに含まれる予定です

4

3 に答える 3

1

キーストロークイベントリスナーをウィンドウまたはドキュメントにバインドし、そのコールバック関数を使用して必要なことをすべて実行します。

jqueryを使用すると、より信頼性の高いキーストロークリスナーであるimhoを作成するのが少し簡単になります。http://blog.cnizz.com/2008/10/27/javascript-key-listener/

于 2012-04-09T05:00:47.500 に答える
1

私はあなたがこのようなものが欲しいと思います:

JSFiddle

http://jsfiddle.net/MXuVY/3/

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

http://jsfiddle.net/MXuVY/6/

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>

于 2012-04-09T05:12:03.170 に答える
0

だから、これはあなたが望むものです: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
    }
});​
于 2012-04-09T05:09:06.557 に答える