Как я могу добавить в событие onclick строку текста - PullRequest
0 голосов
/ 14 февраля 2012

У меня <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>

Как можно добавить эти события onclick с помощью http://www.example.com, чтобы получить результат:

<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);

Спасибо.

1 Ответ

1 голос
/ 14 февраля 2012

Я не думаю, что 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/');

EDIT:

Если у вас нет контроля над html и вам нужно сделать это так, используйте replace() для атрибута onClick, например:

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

пример: http://jsfiddle.net/elclanrs/AH4As/

...