javascript - 是否可以对 Chrome 扩展进行 Base64 编码?

标签 javascript google-chrome google-chrome-extension base64

我正在寻找 base64 编码我的 chrome 扩展的一部分。但是,当我尝试对其进行测试时,它不起作用。 (扩展在未编码时工作正常)。

是否可以对部分 javascript 进行 Base64 编码以用于 Chrome 扩展程序?如果是,怎么办?

最佳答案

全局atob方法可用于解码 base64 字符串(btoa 可用于将字符串编码为 base64)。解码字符串后,eval 可用于将字符串解析为代码,并运行它。

例如,这是打印当前扩展 ID 的单行代码:

alert(eval(atob('Y2hyb21lLmkxOG4uZ2V0TWVzc2FnZSgnQEBleHRlbnNpb25faWQnKQ==')));

说明

我通过在 JavaScript 控制台中键入 btoa("chrome.i18n.getMessage('@@extension_id')") 生成了之前的 base64 字符串。您可以自由使用任何其他方法(例如 base64 command )。这是上一篇文章的完整细目。

alert(eval(atob(btoa("chrome.i18n.getMessage('@@extension_id')")));
//atob decodes from base64, btoa encodes to base64, so they cancel out each other
alert(eval(          "chrome.i18n.getMessage('@@extension_id')" ));
//eval parses the string as code, so we get
alert(                chrome.i18n.getMessage('@@extension_id')   );

内容安全政策

如果您想在扩展进程中使用此方法(例如 background/popup 页面),Content Security policy需要调整。默认情况下,禁止从字符串生成代码。要覆盖此默认策略,请将以下条目添加到 list 文件中:

"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"

关于javascript - 是否可以对 Chrome 扩展进行 Base64 编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16265210/

相关文章:

javascript - 为什么我使用 =(单个等于)的相等比较不能正常工作?

javascript - 有没有一种简单的方法来设置滚动条的样式

javascript - javascript图像翻转问题

javascript - 内联 Javascript 单击功能,用于在 chrome 扩展中动态添加具有动态 id 的元素

javascript - 如何更改 JSPsych 中刺激呈现的权重?

javascript - Chrome 特定的 Javascript 范围问题

html - 更改样式表时 Chrome 出现故障;我该如何防止这种情况?

google-chrome - Non-Authoritative-Reason 头字段 [HTTP]

google-chrome-extension - chrome.contextMenus 排除 URL?

python - 下载用于 selenium 测试的 chrome 扩展