有谁知道我是否可以配置 Google Caja,这样它就可以让某些确切的库正常工作而不被清理?
我有自己的 CAJA 服务器和基于 NodeJS 的应用程序。我正在向 Google CAJA 用户传递代码,这些代码主要与图表和图形相关,但所有库函数(如 d3js、chart.js)都被 CAJA 阻止。
所有库都通过 Caja 并无错误地连接到用户的文档,但是如果用户请求库的任何功能(例如 d3.select("body").append("svg")
)那么它显示错误,例如 this * is not a function
。有谁知道什么方法吗?
PS 我知道 URI 政策,但它似乎只控制所有东西,即来自同源域名的所有东西,无论何时,即使库通过 uriPolicy 传递,Caja 仍在检查它。
最佳答案
您可以从 uriPolicy.mitigate 函数将 url 返回到库的预缓解/预诱骗/受信任版本。您可以只检查库 url,如果匹配,则返回 premitigated URL,否则返回 null。例如:
var uriPolicy = {
mitigate: function(uri) {
if(/jquery\.js/.test(uri))
return urlToMyJquery.js;
else
return null;
}
}
关于javascript - 如何通过 Google CAJA 传递库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39385560/