-2

次のスクリプトは、私のページのすべての URL に私のアフィリエイト拡張機能を追加します。たとえば、http://www.Google.com/が私のページのどこかにある場合... このスクリプトをページに追加すると、URL が自動的に次のように変更http://adf.ly/xxxxxx/http://www.Google.com/されます。

このスクリプトは、ページ上の URL が既にハイパーリンクされている場合にうまく機能します。リンク テキストは同じままですが、リンク先 URL には私のアフィリエイト拡張機能が含まれているためです。

私の質問は...このスクリプトを変更して、生の URL (ハイパーリンクされていない) を元の URL として表示できるようにするにはどうすればよいですか? より良い言い方をすれば、ページ上の生の URL をすべてハイパーリンクするには、このスクリプトが必要です。ページに生の URL がある場合http://www.Google.com、スクリプトは宛先をhttp://adf.ly/xxxxxx/http://www.Google.com/- - に変更しますが、視聴者にはhttp://www.Google.com.

繰り返しになりますが、このスクリプトはリンク テキストではなく URL にのみ影響するため、ハイパーリンクに対しては既に正常に機能します。すべての未加工の URL をクローク / マスク / ハイパーリンクするだけで、視聴者にはアフィリエイト拡張機能が追加された新しい URL ではなく、元の URL の宛先が表示されます。

よろしくお願いします。 HTML コードの例を次に示します。

<script type="text/javascript">
    onmousemove = function adfly() {
        adfly_id = 'xxxxxx';
        for(var i = 0; i < document.links.length; i++) {
            var hrefer = document.links[i].href;
            if(hrefer.match("adf.ly") || hrefer.match("javascript:") || hrefer.match("#")) {
                document.links[i].href = document.links[i].href;
            } else {
                document.links[i].href = 'http://adf.ly/' + adfly_id + '/' + document.links[i].href;
            }
        }
    }
</script>
4

2 に答える 2

0

次の方法で実行できます。

  1. テキスト ノード (または関心のあるサブセット) を調べて、URL の正規表現に一致するものを見つけます。
  2. 次の新しいノードを作成します。
    • テキスト部分
    • アンカー/リンク
  3. これらの新しいノードを DOM に挿入します (元のテキスト ノードを削除/置換します)。

これは、document.links を通過する既存のループとは別のループになります。

最後になりましたが、XSS の脆弱性に注意してください。

于 2012-06-04T04:59:14.387 に答える
-2

href以下のアンカー タグは、属性に「google.fr」と表示されていますが、 が含まれているためonclick、リンクをクリックすると、そこにリストされているサイトに移動します。

 <a title="google" href="http://google.fr/whatpeopleseeonrollover" onclick="this.href='http://yahoo.fr/wherepeoplegoforreal'">http://google.fr/whatpeoplethinktheygo</a>

このようなものを使用して、ページ上のリンクをリダイレクトできます。

于 2015-10-01T15:13:15.643 に答える