Chrome扩展内容脚本在google.com无法触发alert问题求助
问题排查与解决
哈哈,我一眼就看到几个容易踩坑的点,帮你捋捋:
首先从你说的现象——www.google.co.in能弹alert,www.google.com没反应——来看,核心问题大概率出在扩展配置的匹配规则或者脚本引用上。
先看你贴的Manifest配置:
{ "manifest_version": 2, "name": "My Cool Extension", "version": "0.1", "background": { "scripts": ["coolBackground.js"] }, "content_scripts": [ { "all_frames" : true, "matches": ["<all_u..."] } ] }
这里有两个明显的问题:
1. matches匹配规则不完整
你写的"<all_u..."明显没写完啊!如果是想让脚本在所有网站生效,得写成完整的"<all_urls>";如果只想针对Google域名,那得把google.com也加到匹配列表里,比如:
"matches": ["*://www.google.co.in/*", "*://www.google.com/*"]
这里的*是通配符,能覆盖http/https协议,以及域名下的任意页面路径。
2. 漏了指定要注入的内容脚本文件!
你在content_scripts块里只写了all_frames和matches,却没加js字段来指定哪个脚本要被注入!比如你的alert语句写在content.js里的话,必须补上:
"content_scripts": [ { "all_frames" : true, "matches": ["<all_urls>"], "js": ["content.js"] // 这行绝对不能少! } ]
这可能是你之前配置过但粘贴的时候漏了,不然连google.co.in都不该生效才对😂
最后别忘了刷新扩展和页面
修改完Manifest后,一定要去Chrome的扩展管理页(输入chrome://extensions/打开),点击扩展卡片上的重新加载按钮,让新配置生效。另外,已经打开的www.google.com页面也要刷新一下,才能触发脚本注入。
按这几步调整后,应该就能在google.com上正常弹出alert啦!
内容的提问来源于stack exchange,提问作者Dhamo R
相关产品推荐
相关产品推荐

