2012-02-14 21 views
0

的字符串onclick事件我有<a> s的的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); 

謝謝。

+0

甲N Y B○d Y' – henryaaron 2012-02-14 00:31:17

回答

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/

+0

如果我這樣做,我無法控制HTML,我會在很久以前使用'target =「_ blank」'... – henryaaron 2012-02-14 00:32:35

+0

請參閱編輯,它應該可以工作。 – elclanrs 2012-02-14 00:41:16

+0

不起作用... – henryaaron 2012-02-14 00:44:16