将JavaScript链接转换为标准链接

时间:2009-03-30 13:33:00

标签: javascript dom jython

我正在使用HTML,其中包含如下所示的javascript链接:

<a href="javascript:openExternalLink(5542, true, 'http://www.websitedomain.com')">Links Text Here</a>

我需要用标准锚标签替换它们,如下所示:

<a href="http://www.websitedomain.com">Links Text Here</a>

在Jython中实现这一目标的最佳解决方案是什么?

由于

EEF

4 个答案:

答案 0 :(得分:2)

最好的方法可能是使用正则表达式。

答案 1 :(得分:1)

var i= 0, A= document.links, who, url;
while(A[i]){
    who= A[i++];
    url= who.href || '';
    if(url.indexOf('javascript:openExternalLink')== 0){
        who.href= url.substring(url.indexOf("'"), url.lastIndexOf("'")+1);
    }
}

答案 2 :(得分:0)

我的解决方案是使用jQuery库(只是为了易于使用,您可以通过循环遍历锚来简单地在纯Javascript中执行代码,因为其余代码是纯Javascript)。

在这里,它循环遍历锚点并将属性href设置为DOM中的真实属性

$(document).ready(function () 
    {
        $("a").each(function () 
        {
            var href = $(this).attr('href');
            var urlStart = href.indexOf('http://'); //start point of the substring cut
            var urlStop = href.lastIndexOf("'"); //end point of the substring cut

            var realUrl = href.substring(urlStart, urlStop); //this is the real URL

            $(this).attr( {'href': realUrl} ); //now replace and we're ready to go
        });
    });

我自己测试了这个方法,它按预期工作。享受!

答案 3 :(得分:0)

这样的事可能有用:

newhtml = oldhtml.replace(/href=".*?'(http:.*?)'.*?"/gi, 'href="$1"');