pro*_*ict 5 javascript base64 google-chrome google-chrome-extension
我期待base64编码我的chrome扩展的一部分.但是,当我尝试测试它时,它不起作用.(扩展在未编码时工作正常).
是否可以将Base64编码为javascript的一部分用于Chrome扩展程序?如果是这样,怎么样?
Rob*_*b W 10
全局atob方法可用于解码base64字符串(btoa并可用于将字符串编码为base64).解码后,eval可以使用字符串将字符串解析为代码,然后运行它.
例如,这是一个单行程序来打印当前扩展的ID:
alert(eval(atob('Y2hyb21lLmkxOG4uZ2V0TWVzc2FnZSgnQEBleHRlbnNpb25faWQnKQ==')));
Run Code Online (Sandbox Code Playgroud)
我通过btoa("chrome.i18n.getMessage('@@extension_id')")在JavaScript控制台中输入来生成以前的base64字符串.您可以自由使用任何其他方法(例如base64命令).这是前一个单行的完整细分.
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') );
Run Code Online (Sandbox Code Playgroud)
如果要在扩展程序的进程中使用此方法(例如后台/弹出页面),则需要调整内容安全策略.默认情况下,禁止从字符串生成代码.要覆盖此默认策略,请将以下条目添加到清单文件中:
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7572 次 |
| 最近记录: |