Chrome 拡張機能を使用して Web サイト (Twitter) にパラメータを追加するにはどうすればいいですか?

Chrome 拡張機能を使用して Web サイト (Twitter) にパラメータを追加するにはどうすればいいですか?

Twitter URL にパラメータを追加したい (すでにパラメータがある場合はそれを削除します)

このURLを例にすると、 https://twitter.com/RequestlyIO/status/1272478326838292488 名前に「twitter」、パスに「status」が含まれる URL を検出する必要があります。

URL が両方に一致する場合は、末尾にパラメータ「?s=21」を追加する必要があります。

私は持っているリクエストリー Chrome拡張機能Chrome にインストールし、それを使用してパラメータを追加します。

これは、私が使用する別のプログラムが正しく動作するようにするためです。(バッファ)

これは Firefox では問題なく動作しますが、Chrome の 3 つの異なるバージョンで試してみましたが、動作しません。

何か案は?

答え1

Chrome 拡張機能は、Service Workers とうまく連携しません。Service Workers によって行われたリクエストは Chrome 拡張機能内では表示されないため、変更 (またはブロック) できません。

例えば、これを試してみてください

リダイレクトルールを作成する

Request URL Containsツイッター

Destination https://stackoverflow.com

ここに画像の説明を入力してください

保存して twitter.com を開いてみてください。Twitter が (ディスク キャッシュから) またはネットワークからの応答を提供する ServiceWorker を登録しているため、ルールがリダイレクトを実行しないことがわかります。

このスクリーンショットを見てください

ここに画像の説明を入力してください

これを回避するには、スクリプト ルールの挿入を使用して、URL 条件が一致したときにリダイレクトを実行する小さなカスタム スクリプトを記述できます。

例を挙げてみましょう

ここに画像の説明を入力してください

使用できるコードは次のとおりです

const currentURL = window.location.href.toLowerCase();
// match your condition here
// Also check the param is not already added to avoid infinite redirects
if (currentURL.indexOf('status') > -1 && currentURL.indexOf('requestlyio') > -1 && currentURL.indexOf('s=21') === -1) {
  // Do the redirect here
  window.location.href = currentURL + '?s=21'
}

挿入スクリプト共有リストへのリンクはこちらです

https://app.requestly.io/rules/#sharedList/1595750670410-twitter-status にパラメータを追加

関連情報