我有这个HTML:

<a href="#" onclick="window.open('TrackPackage.asp?ID=4', '', 'settings');">Track Your Package »</a>


该站点上的某人能够为我提供一个脚本,为URL加上域http://www.example.com/作为前缀,这是脚本:

$(document).ready(function(){
$('a[onclick^="window.open(\'TrackPackage.asp"]').attr('onClick', $('a[onclick^="window.open(\'TrackPackage.asp"]').attr('onClick').replace("window.open('", "window.open('http://www.example.com/"));
});


但是,我对此有些麻烦:
第一个问题是元素有多个实例。这是一个小提琴:http://jsfiddle.net/VMmZx/
与其按预期的那样用ID=4签名一个锚,而不是用ID=5签名另一个锚,都使用ID=4签名。
这个想法是,每个window.open函数应以http://www.example.com为前缀,但是URL的其余部分应保持不变...

我遇到的第二个问题是页面上不存在该元素时,jQuery的其余部分将失败...
这是另一个小提琴:http://jsfiddle.net/VPf32/
<a>应该获得类foo,但是由于该元素在页面上不存在,因此jQuery无法执行。
由于JavaScript已包含在ASP.NET服务器的HTML模板中,因此可能会产生许多问题。

希望我很清楚,您可以帮助我。谢谢。

最佳答案

您为什么要像这样在线进行点击事件?我只是输出像这样的链接:

<a href="/path/to/file.html" target="_blank">Link Text</a>

然后:
$('a[target=_blank]').click(function(){
   var prefix = 'http://domain.com';
   window.open(prefix + $(this).attr('href'));
});

关于javascript - 在window.open函数jQuery中添加URL前缀,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9287448/

10-11 22:35
查看更多