启用Chrome扩展后Razorpay支付完成页面空白问题解决求助
解决方案
1. 修复manifest.json的语法错误
你提供的content_scripts配置末尾多了一个多余的],这会导致Chrome无法正确解析exclude_matches规则,从而让内容脚本仍然注入到Razorpay页面。正确的配置应该是:
"content_scripts": [ { "matches": ["<all_urls>"], "exclude_matches": ["*://*.razorpay.com/*"], "js": ["content.js"] } ]
确保整个manifest.json的结构正确,没有多余的符号。
2. 排查扩展的后台脚本/服务工作者是否干扰请求
如果你的扩展使用了chrome.webRequest或chrome.declarativeNetRequest API拦截、修改网络请求,这些逻辑可能会作用于Razorpay的API请求,导致认证页面加载失败。需要在后台脚本中添加判断,跳过对Razorpay域名的处理:
// 示例:webRequest拦截中排除Razorpay chrome.webRequest.onBeforeRequest.addListener( (details) => { if (details.url.includes('razorpay.com')) { return { cancel: false }; // 不处理该请求 } // 你的其他拦截逻辑 }, { urls: ["<all_urls>"] }, ["blocking"] );
3. 检查web_accessible_resources的冲突
如果你的扩展声明了web_accessible_resources,这些资源可能会被Razorpay的页面意外加载,导致页面异常。需要在配置中排除Razorpay域名:
// Manifest V3 示例 "web_accessible_resources": [ { "resources": ["your-resource.js", "your-style.css"], "matches": ["<all_urls>"], "exclude_matches": ["*://*.razorpay.com/*"] } ]
4. 验证内容脚本是否确实未注入
打开空白的Razorpay认证页面,按F12进入开发者工具:
- 切换到Sources标签页
- 在左侧面板展开Content scripts,查看是否有你的扩展的脚本
如果存在,说明排除规则仍未生效,需要检查是否有多个content_scripts条目未配置exclude_matches,或者include_globs等规则覆盖了exclude_matches。
5. 排查扩展的其他权限
如果扩展申请了<all_urls>的主机权限,某些API(比如chrome.scripting.executeScript)可能会动态向Razorpay页面注入脚本。需要在动态注入的逻辑中添加域名判断,避免注入到Razorpay相关页面。
内容的提问来源于stack exchange,提问作者Pravin Mohite
相关产品推荐
相关产品推荐

