我有<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);
感谢。
答案 0 :(得分: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/'));