由于Firefox无法在新标签中打开链接,如果它们将HREF标记转移到某个功能,可能会使用脚本来转换它们;即实际的HREF。
我可以看到foo的作用;
function foo(x) { self.location.href = 'page.asp?ID=' + x }
所以我需要改变所有的实例;
<a href="javascript:foo(12354)">
到
<a href="page.asp?ID=12354">
其中12354是变量,唯一需要修改的HREF标签是那些调用函数foo的标签吗?
等等;var anchors = document.querySelectorAll('a');
for(var i=0;i<anchors.length;i++)
{
if(anchors[i].href includes 'foo' then
{
val1 = get the value within the parenthesis; i.e. 12354
anchors[i].href = "page.asp?ID=" + val1
}
}
答案 0 :(得分:1)
枚举foo
属性中包含href
文字的链接,提取ID并指定新值:
[].forEach.call(document.querySelectorAll('a[href^="javascript:foo"]'), function(a) {
var id = a.href.match(/\d+/)[0];
a.setAttribute('href', 'page.asp?ID=' + id);
});