2009-03-30 14 views
1

に変換:私はそうのような標準的なアンカータグでこれらを交換する必要がJavaScriptのリンクは、私は以下のような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でこれを実現する最善の解決策は?

おかげ

EEF

答えて

2

最良の方法は、おそらく正規表現を使用することです。

0

私の解決方法はjQueryライブラリを使用することです(コードの残りが純粋なJavascriptであるため、使いやすさのために、単純にアンカーをループすることで純粋なJavascriptでコードを実行できます)。

ここに行く、それがアンカーをループして、私はこの方法を自分自身をテストし、意図した通りに動作します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 
     }); 
    }); 

の実質1に属性hrefを設定します。楽しい!

このような何かがうまくいくかもしれない
+0

これは素晴らしい解決策ですが、私はそれは限られた機能であると考えています。 javascript:リンクを避ける重要な理由の1つは、非javascriptブラウザをサポートすることです。明らかにあなたの解決策はこれをしません。 –

+0

コンテンツ上でJavaScriptを実行できないため、これを行うことはできません。私はJythonにのみ限定されています。/ – RailsSon

+0

私は彼の目的の一部がSEOであると確信していますが、これは確かに役立たないでしょう。 –

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); 
    } 
} 
0

newhtml = oldhtml.replace(/href=".*?'(http:.*?)'.*?"/gi, 'href="$1"'); 
関連する問題