maybe yes 发表于2014-12-17 17:20
原文链接 : http://blog.lmlphp.com/archives/40 来自 : LMLPHP后院
去年过年前开发的Chrome浏览器插件,昨晚在我自己的笔记本上测试没有问题,今天来公司一安装就连续出现了很多的报错,下面将错误和解决方案记录如下,相信有不少的网友会碰到类似的问题。首次安装报错如下:
Could not load extension from 'G:\...'. The manifest_version key must be present and set to 2 (without quotes). See developer.chrome.com/extensions/manifestVersion.html for details.
上面的错误系插件版本过低,在高版本Chrome中需要在manifest文件中添加 manifest_version 配置项。
按照上面的提示在清单文件中增加了 "manifest_version": 2 配置项,又出现如下错误:
"manifest_version": 2, 尝试安装此扩展程序时出现以下警告: 'background_page' requires manifest version of 1 or lower. Permission 'http://*' is unknown or URL pattern is malformed. Permission 'https://*' is unknown or URL pattern is malformed.
上面的信息告诉我们,"background_page" 配置项必须在 manifest version 1 或以下版本;"Permission" 配置项里面的 'http://*' 和 'https://*' 是一个未知的或者该URL模式是畸形的。于是去除上面的配置项。
然后又出现问题了,Popup页面不能展示。在网上找了下资料,发现 manifest version 2 的 "browser_action" 配置项做了修改,名字由 "popup" 改为 "default_popup"。修改后问题解决。但是又出现了另外的问题,popup页面JS运行错误,所有功能都失效了。报错内容如下:
Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'self' chrome-extension-resource:".
在网上找了下原因,是因为在 manifest version 2 里面不允许在 POPUP 页面写 JavaScript 脚本,脚本必须引用外部JS文件。于是将页面中的JS移动到外部文件后引用,最后问题解决。[引]Chrome扩展页面动态绑定JS事件提示错误,开发Chrome扩展时,页面的popup.html中需要js的时候,直接将JS写在动态绑定JS事件会提示错误。
下面附上 manifest 文件老版本和新版本的不同配置:
manifest version 1 or lower : { "name": "抢票插件第二代", //程序名称 "version": "1.0", //版本信息 "description": "快速抢票", //程序描述 "background_page": "background.html", //这个html页面用来保存插件的主要逻辑 "permissions": [ //权限设置,用来定义所需的网络信息,实现跨越 "tabs", "http://*", "https://*", "notifications" ], "browser_action": { //浏览器行为 "default_icon": "icon.png", //在浏览器上的小图标 "popup": "popup.html" //点击上面的小图标后弹出的那个小窗口页面 }, "content_scripts": [ { "matches": ["*://kyfw.12306.cn/otn/confirmPassenger/initDc*", "*://kyfw.12306.cn/otn/leftTicket/init*"], "js": ["Lib/jquery.min.js", "12306autoselected.user.js"], "run_at": "document_end" } ] } manifest version 2: { "name": "抢票插件第二代", //程序名称 "version": "1.0", //版本信息 "manifest_version": 2, "description": "快速抢票", //程序描述 // "background_page": "background.html", //这个html页面用来保存插件的主要逻辑 "permissions": [ //权限设置,用来定义所需的网络信息,实现跨越 "tabs", "notifications" ], "browser_action": { //浏览器行为 "default_icon": "icon.png", //在浏览器上的小图标 "default_popup": "popup.html" //点击上面的小图标后弹出的那个小窗口页面 }, "content_scripts": [ { "matches": ["*://kyfw.12306.cn/otn/confirmPassenger/initDc*", "*://kyfw.12306.cn/otn/leftTicket/init*"], "js": ["Lib/jquery.min.js", "12306autoselected.user.js"], "run_at": "document_end" } ] }
阅(69)评(0)查看评论