次のような状況があります。decodeURIComponentがフォーム送信からchrome.webRequestに提供されたURIから失敗しました
- 私は1つのテキストフィールドとフィールドが
<<BLAH>alert (”BLAH”);//<</ blah >
の内容を持っている持っているHTMLフォーム- 経由でGETリクエストを行います。無効で仮説的なマークアップであることが知られています。
- 私は予想に反して、フォームの送信によりtrigged
- 復号化が失敗し、WebRequestクラスの完全なURLに
decodeURIComponent
にしようwebRequest
- にイベントリスナーを持っています。
- 私は、decodeURIComponentは、ブラウザがフォームからエンコードしたものをデコードできると期待しています。これは間違った仮定のように見える、またはクロームのバグ:JSの下Chromeの拡張機能にあった場合* 55.0.x
、次のスニペットは、問題を示します。
var filter = { urls: ['<all_urls>'] }
function handler (details) {
decodeURIComponent(details.url)
}
chrome.webRequest.onBeforeRequest.addListener(
handler,
filter,
['blocking', 'requestBody']
)
<form method='get'>
<input type='text' name='field'/>
<button type='submit'>submit</button>
</form>
もちろん、あなたが実際にこれを実行することはできません - WebRequestクラスは、Chrome拡張機能APIの一部です。
ヒントを探しています。ありがとう!
トピックを作成するには質問をしてください:**完全** [mcve]を*問題を複製*してください。 * manifest.json *、背景/コンテンツ/ポップアップスクリプト/ HTMLの一部を含みます。デバッグの助けを求める質問(「**なぜこのコードは動作しないのですか?**」)には、以下が含まれていなければなりません:►必要な動作、►特定の問題またはエラー*、および►問題を再現するのに必要な最短コード自体**。明確な問題文がない質問は、他の読者にとって有用ではありません。参照してください: "**どのように[mcve] **を作成するか"、[ここで私はどんな話題を聞くことができますか?](http://stackoverflow.com/help/on-topic)、[ask] – Makyen
あなたのエクステンションをロードして実行すると、[*あなたのエクステンションのさまざまな適切なコンソール](http://stackoverflow.com/a/38920982/3773011)に*正確に*表示されますか?正確な入力、失敗した出力、期待される出力を提供してください。 – Makyen
URI全体をデコードしようとしています。通常は、[decodeURIComponent()](https://developer/javaScript/Reference/Global_Objects/decodeURI)を使用して、['decodeURI()'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURI)代わりに、エラーが発生しないようにしてください。 – Makyen