1

我正在使用具有如下 javascript 链接的 HTML:

<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 中实现这一目标的最佳解决方案是什么?

谢谢

伊夫

4

4 回答 4

2

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

于 2009-03-30T13:42:44.863 回答
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);
    }
}
于 2009-03-30T15:44:55.087 回答
0

我的解决方案是使用 jQuery 库(为了便于使用,您可以通过循环锚点来简单地用纯 Javascript 编写代码,因为其余代码是纯 Javascript)。

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

$(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
        });
    });

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

于 2009-03-30T14:00:18.300 回答
0

像这样的东西可能会起作用:

newhtml = oldhtml.replace(/href=".*?'(http:.*?)'.*?"/gi, 'href="$1"');
于 2009-03-30T16:05:03.757 回答