0

だから私はクローム拡張機能を書いたときに新しい男だ。Chrome拡張機能ですべてのリンクを少し変更したバージョンのものに置き換える

var links = document.getElementsByTagName("a"); 
for(var i=0;i<links.length;i++){ 
    links[i].href = links[i].href.replace((www\.)?imgur.com\/gallery\/, i\.imgur\.com\/); 
} 

と私のmanifest.jsonを::

{ 
    "manifest_version": 2, 

    "name": "Degallerify", 
    "description": "This extension will convert all instances of imgur.com/gallery/ links to direct links", 
    "version": "1.0", 

    "browser_action": { 
    "default_icon": "icon.png" 
    }, 
    "permissions": [ 
    "http://*/*","https://*/*" 
    ], 
    "content_scripts": [ 
    { 
    "matches": [ 
     "http://*/*","https://*/*" 
    ], 
    "js": ["content_script.js"] 
    } 
] 
} 

前提はシンプルで、ちょうどすべてのimgur.com/gallery/リンクを交換するこれまでのところ、私はいくつかの非常に単純な私content_script.jsとしてのjsを持っています直接の画像リンクを使用します。私はオンライン正規表現との正規表現を比較し、それは完全に一致します。

ただし、拡張子を読み込むと何もしません。

This is an example of a page with gallery links

私は拡張子をロードし、ページを更新すると、すべてのリンクは、ギャラリーリンク残ります。私の正規表現は間違っていますか?私はJSのために何か別のことをする必要がありますか?

ありがとうございます!

答えて

1

iは置換文字列に連結されません。置換文字列は引用符で囲まれません。 ./はエスケープする必要はありません。 ./文字のエスケープを引用符で囲んで、置換文字列にiを連結してみてください。

links[i].href = links[i].href.replace((www\.)?imgur.com\/gallery\/ 
       , i + ".imgur.com"); 
+0

まだ動作しません。また、私はiを連結していません - それは私がやっている実際のURL置換です。新しいURLはi.imgur.com/LINKでなければなりません – JonLuca

+0

@JonLuca _ "また、私は連結していません - 私がやっている実際のURL置換です。新しいURLはi.imgur.com/LINK" 'i'は反復のインデックスです。元の質問で 'js'に置換文字列はありませんか? "リンク"はどうすればよいですか? – guest271314

+1

私は実際にそれを理解してしまいました - 'el [j] .href = el [j] .href.replace(/(。*)?(http)?:\/\ /)? ?(m \。)?imgur.com \ /.*/、data.data.link); 正規表現を2つの '/'に入れなければならなかった ありがとう! – JonLuca

関連する問題