我为Chrome创建了一个扩展程序。我需要允许用户出于各种原因更改扩展中的javascript文件。当在C:\ Users \\ AppData \ Local \ Google \ Chrome \ User Data \ Default \ Extensions \ cidaekdakljdsijofjahinafcafmanb \ 6.0.5_0 \ whatever.js中更改whatever.js文件时,Chrome返回"此扩展程序可能已经腐败了。"我必须重新安装扩展程序。
如何阻止这种情况?如何允许更改javascript文件?我只是想设置一个变量。我可以包含一个文本文件并进行更改吗?在什么情况下我可以让Chrome停止这样做?
我可以添加用户脚本吗? whatever.user.js?我在某处读过这篇文章。
感谢。
答案 0 :(得分:2)
您可以通过遵循正确的开发实践来解决它。如果您让用户编辑代码来为变量收费,这就是一个巨大的编码问题。
相反,它应该可以通过用户界面进行更改,例如在extension options page中。如果要完全控制该选项,请从服务器下载或从Web可访问扩展资源json文件中读取它。这是一个从您在评论中询问的文件中读取的示例:
var url = chrome.extension.getURL("options.json"); //in manifest under web_accessible_resources
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function (e) {
if (xhr.readyState == 4 && xhr.status == 200) {
var options=null;
try {
options = JSON.parse(xhr.responseText);
}
catch (e) {
console.log("error: cant parse options.");
}
if (options) {
//got it!
}
}
};
xhr.open("GET", url);
xhr.send();
这也简化了很多用户体验和可能的用户错误。事实上,每个操作系统以不同的方式存储和缓存代码将是一个支持的噩梦。
并且不,您无法绕过用于保护用户免受修改扩展源代码的病毒的Chrome安全措施。