1

この質問は、Jqueryを使用してリンクのアンカー部分のhttp://を置き換えるのと似ています(ただし、ひねりが異なります)

私の目標は、おそらくスクリプト手法(jQueryまたはJsRender)またはその他の関連手法を使用して、絶対パスを置き換えたり、Webサイトに相対パスを実装したりするための最適なソリューションを考え出すことです。

次のようなものがあります。-ハードコードされた多くの異なるサーバー名またはIP(10を超える場合でも)が各ページ内に存在する可能性があります-マッサージする1000以上の.htm、.htmlページ

あなたの考えは大歓迎です(そして簡単な方法も!)

AgileQ

4

1 に答える 1

0

jQuery ソリューションを作成する方法は次のとおりです。

$('a[href^="http"]').click(function(event){
    event.preventDefault();      
    var matches = $(this).attr('href').match(/http(s?):\/\/[^\/]+(\/.*)$/);
    window.location = matches[2];
});

注: 私はこれをテストしていません。正規表現パターンに欠陥がある可能性があります。(私は最初にそれらを正しく理解することはできませんが、現時点ではこれをテストする立場にありません)

ただし、ポイントは、http とドメインが指定されたリンクのクリックをキャッチし、クリックされたリンクの href で javascript の .match() を使用して、パスを表す href の部分にサブマッチを提供することです。その後、それにリダイレクトします。正規表現で後ろ向きの肯定的な表現を使用したかったのですが、JavaScript はそれをサポートしていません。

更新ここで正規表現をテストしましたhttp://jsfiddle.net/2wmaM/動作しているようです。

于 2012-10-14T17:33:15.703 に答える