0

私は<a>onclick イベントを持つ を持っています:

<a href="#" onclick="window.open('TrackPackage.asp', '', 'location=1,menubar=1,scrollbars=1,status=1,resizable=1,width=635,height=460'); return false;" class="nounderline">Track Your Package »</a>

http://www.example.com結果が次のようになるように、これらの onclick イベントを前に追加するにはどうすればよいですか。

<a href="#" onclick="window.open('http://www.example.com/TrackPackage.asp', '', 'location=1,menubar=1,scrollbars=1,status=1,resizable=1,width=635,height=460'); return false;" class="nounderline">Track Your Package »</a>

jQuery 1.4.2 と互換性がある必要があります

他の誰かが次のようなことを述べていましたが、1.4.2 で動作させることができません:

var link = $("a"); // I don't have enough info to tell you how to precisely get this instance
var originalOnClick = link.attr("onclick");
var part1 = "window.open('"; // this is always the same, right?
var part2 = originalOnClick.substr(part1.length); // the remainder, beginning with TrackPackage.asp
var newOnClick = part1 + "http://www.example.com/" + part2;

link.attr("onclick", newOnClick);

ありがとう。

4

1 に答える 1

1

window.open()ここは良い考えではないと思います。ほとんどのポップアップ ブロッカーによってブロックされます。jQuery を使用している場合は、onclickとにかくインライン イベントを使用しないでください。
あなたがやろうとしていることは、おそらく単純なアンカーリンクで達成できます:

<a href="trackPackage.asp" target="_blank"></a>

そして、次のようなことができます:

var prependUrl = function($link, url) {
    var oldUrl = $link.attr('href'),
        newUrl = url + oldUrl;
    $link.attr('href', newUrl);
}

prependUrl($('#yourLink'), 'http://www.example.com/');

編集:

html を制御できず、そのようにする必要がある場合は、次のような属性で使用replace()します。onClick

$('a').attr('onClick', $('a').attr('onClick').replace('window.open(\'', 'window.open(\'http://example.com/'));

例: http://jsfiddle.net/elclanrs/AH4As/

于 2012-02-14T00:23:51.060 に答える