好的,这是我的问题:
我在定义为RedirectLink(a,b,c,d,e)
的第三方javascript库中有此功能,其中a,b,c,d,e是字符串。
我的网站上也有一个链接再次自动生成(我无法更改)
<a href="javascript: RedirectLink("1", "2", "3" ,"4" ,"5")" id="mylink" >
我需要做的是,读取此锚点(mylink)href,我需要调用RedirectLink函数,例如javascript: RedirectLink("1", "2", "3" + param, "4" , "5")
。其中param
来自查询字符串。
第一部分很简单,读取href但是如何改变第三个参数?
答案 0 :(得分:1)
嗯......你可以这样做一个黑客:
通过javascript,您可以将href从javascript: RedirectLink(1,2,3,4,5)
更改为javascript: MyRedirectLink(1,2,3,4,5)
,然后定义MyRedirectLink
:
var param = 'xxx';
function MyRedirectLink(a, b, c, d, e) {
RedirectLink(a, b, c + param, d, e)
}
不优雅但它应该有用(如果param
可以在你的函数之外计算)。
答案 1 :(得分:1)
这样可行:
$(function() {
var $mylink = $('#mylink');
var href = $mylink.attr('href');
// getting the array of arguments
var args = href.substr( href.indexOf('(') + 1 );
args = args.slice(0, args.length - 1);
args = args.split(',');
// getting the string value for each array item
for (var i = 0; i < args.length; i++) {
args[i] = $.trim(args[i]);
args[i] = args[i].slice(1, args[i].length - 1);
}
// augmenting the third argument
args[2] += window.location.href;
$mylink.attr('href', '#').click(function() {
RedirectLink(args[0], args[1], args[2], args[3], args[4]);
return false;
});
});