Chromeの拡張機能を作ったのですが一部のサイトで画像のように文字列が連続して表示されます。これを直す方法を教えてください。
js
1$(function(){ 2 const reg = new RegExp(/((h?)(ttps?://[a-zA-Z0-9.\-_@:/~?%&;=+#',()*!]+))/, "gi"); 3 $('body :not(script):not(meta):not(style):not(noscript)').contents().filter(function(){ 4 return this.nodeType === 3; 5 }).replaceWith(function(){ 6 var s = $("<p>").text(this.nodeValue).html() 7 return s.replace(reg, "<a href='h$3'>$1</a>") 8 }) 9})
質問はなんでしょうか?
もし現在の挙動が問題だというなら、問題を再現するための入力HTMLと、現状の出力HTML、欲しい出力HTMLを質問文に書いてください。
すいません。どう用意すればいいか分かりません。
まず確認ですが、「連続して表示される」のが問題で、それを直したいのですよね? まずはそのことを質問文に明記してください。
問題が起きるページを拡張機能なしでChromeで開いて、問題が起きる箇所のHTMLソースを探し出して、その部分をコピーして新しいHTMLファイル(1)を作ってください。
その新しいHTMLファイルを拡張機能ありのChromeで開いて、問題を再現してください。Chromeの開発者ツールを開いてElementsタブで拡張機能が動いたあとのHTMLソース(2)を確認してください。
(1)が問題を再現するための入力HTML、(2)が現状の出力HTML。
(3)は質問者さんが考えてください。もしかすると、(1)と同じなのかもしれません。
試してみましたが、そちらで問題は起きませんでした。
回答1件
あなたの回答
tips
プレビュー