![如何使用 Chrome 扩展程序向网站(Twitter)添加参数?](https://linux22.com/image/1628378/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20Chrome%20%E6%89%A9%E5%B1%95%E7%A8%8B%E5%BA%8F%E5%90%91%E7%BD%91%E7%AB%99%EF%BC%88Twitter%EF%BC%89%E6%B7%BB%E5%8A%A0%E5%8F%82%E6%95%B0%EF%BC%9F.png)
我想向 Twitter URL 添加一个参数(如果已经有一个参数,则删除该参数)
以此 URL 为例, https://twitter.com/RequestlyIO/status/1272478326838292488 它需要检测名称中含有“twitter”且路径中含有“status”的 URL。
如果URL匹配两者,则应在末尾添加参数“?s=21”。
我有请求式 Chrome 扩展程序安装在 Chrome 中并使用它来添加参数。
这样我使用的其他程序就可以正常与其配合使用。(缓冲区)
这在 Firefox 中运行良好,但我在 3 个不同版本的 Chrome 中尝试过,但不起作用。
有任何想法吗?
答案1
Chrome 扩展程序与 Service Workers 配合得并不好。Service Workers 发出的任何请求在 Chrome 扩展程序中都是不可见的,因此无法修改(或阻止)。
例如-试试这个
创建重定向规则
Request URL
Contains
twitter.com
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-add-parameter-to-twitter-status