Chrome 扩展程序开发错误:资源必须在web_accessible_resources中列出
Chrome Extension development error : Resources must be listed in the web_accessible_resources
我是写chrome扩展的新手。我正在尝试在注入的内容脚本中打开一个 ejs 模板,但是当我执行新的 EJS({}) 时,content_script.js出现以下错误
"拒绝铬 extension://eadcfllkpeiejpedposonemnmmpnggie/content.html.ejs 的负载。资源必须在web_accessible_resources清单密钥中列出,以便由扩展之外的页面加载。
注意:我已将资源添加到web_accessible_resource
Manifest.json
{
"name" : "test",
"description" : " app",
"version" : "1.0",
"manifest_version" : 2,
"browser_action" :{
"default_icon" : "images/icon.png"
},
"permissions" : ["tabs","notifications","contextMenus","background","http://*/*","https://*/*","<all_urls>"],
"options_page" : "views/options.html",
"icons" : {"16" : "images/icon-16.png"//Icon context menu},
"background" : {
"page" : "views/background.html",
"js" : ["scripts/jquery-1.10.2.min.js"]
},
"web_accessible_resources": ["views/content.html.ejs"]
}
背景.js
'use strict';
document.addEventListener("DOMContentLoaded", function(tab){
chrome.contextMenus.create({
title : "Add as reminder",
id : "rappelSelection",
contexts: ["selection"],
onclick: function(info,tab){addContent(info,tab)}
})
});
function addContent(info, tab){
var details = {};
details.text = info.selectionText;
chrome.tabs.executeScript(tab.id, {
file : "scripts/jquery-1.10.2.min.js"
});
chrome.tabs.executeScript(tab.id, {
file : "scripts/ejs_min.js"
});
chrome.tabs.executeScript(tab.id, {
file : "scripts/content_script.js"
});
chrome.tabs.getSelected(null,function(tab){
chrome.tabs.sendRequest(tab.id, {details: details}, function(response){
console.log(response);
});
});
}
content_script
chrome.extension.onRequest.addListener(function newContent(request, sender, sendResponse){
var template_path = chrome.extension.getURL('content.html.ejs');
var data = {content: request.details.text };
var template = new EJS({url:template_path}).render(data);
$("body").append(template);
sendResponse({contentText: "goodbye"});
});
getURL 方法需要文件的路径,而不仅仅是文件名的根目录改变
var template_path = chrome.extension.getURL('content.html.ejs');
自
var template_path = chrome.extension.getURL('views/content.html.ejs');
修复了此问题。多亏@Xan需要另一双眼睛才能看到那:)
相关文章:
- Javascript:selenium Web驱动程序isDisplayed()不工作
- 在Web应用程序中使用Highcharts javascript
- WebDriverException:tinyMCE未在selenium Web driver java中定义
- Selenium Web驱动程序和javascript
- Windows形成web浏览器控件和Javascript更改的DOM
- 如何将javascript事件从web浏览器wpf控件发送到wpf的c#代码
- Steam Web API:I'我不知道该如何处理这个看起来像哈希的url来生成图像
- 在调用speak之前预加载Web Speech API
- 如何在visualstudio中调试web api时编辑javascript文件
- 是否存在React Native“;WEB代码安全防护”;
- 如何在Ionic Android中将Javascript注入到web视图中
- 将复杂对象从angular js传递到web api,它总是返回404
- 基于api密钥的NodeJS web服务
- 将下载链接从web浏览器传递给第三方应用程序
- 基于Web的JS调试库
- 使用javascript在客户端上使用Web服务
- 如何通过安全的https连接在javascript中使用基于soap xml的Web服务
- 从Javascript连接到SOAP Web服务
- 自定义HTML元素属性未显示-Web组件
- 如何允许web浏览器记住未以标准方式发送的表单字段