0

replace() を使用して、HTML ページのハイパーリンクから特定の文字列を削除しようとしています。これを行う方法を示すいくつかの投稿に出くわしましたが、それらはすべて replace() を使用してこれを達成しています。IE では動作しますが、FireFox では動作しません。これが、置換(削除)したい文字列を含むコードです。

私のhtmlページには、処理できるようにplスクリプトによって追加された外部Webサイトへのリンクがあります。このスクリプト参照をハイパーリンクから削除したいと考えています。

例:<a href="/cgi-bin/redir.pl?http://www.google.com/" target="_new">Google Search</a>

私はそれが欲しい:<a href="http://www.google.com/" target="_new">Google Search</a>

$("a[href*='/cgi-bin/redir.pl?']").attr('href', function() { return this.replace('/cgi-bin/redir.pl?',''); });

このコードは IE では機能しますが、FireFox では機能しません。このコードのさまざまなバリエーションを試しましたが、成功しませんでした。FireFoxでも動作させる方法について誰かがヒントを教えてくれることを願っています.

4

1 に答える 1

0

次のようなものを試してください

$('a[href^="/cgi-bin/redir.pl?"]').each(function() {
    this.href = this.href.replace(/^\/cgi-bin\/redir\.pl\?/, '');

    // or $(this).attr('href', this.href.replace(/^\/cgi-bin\/redir\.pl\?/, ''));
    // or this.href = this.href.substring(18);
});
于 2012-05-18T12:42:52.690 に答える