Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何通过Google CAJA传递图书馆?_Javascript_Node.js_D3.js_Google Caja - Fatal编程技术网

Javascript 如何通过Google CAJA传递图书馆?

Javascript 如何通过Google CAJA传递图书馆?,javascript,node.js,d3.js,google-caja,Javascript,Node.js,D3.js,Google Caja,有人知道我是否可以配置GoogleCaja,这样它就可以让一些精确的库正常工作,而不会被清理? 我有自己的CAJA服务器和基于NodeJS的应用程序。我将传递给GoogleCaja用户代码,它将主要与图表和图形相关,但所有库函数(如d3js、chart.js)都被CAJA阻止。 所有库都经过Caja并连接到用户文档,没有错误,但如果用户请求库的任何功能(例如d3.select(“body”).append(“svg”)),则它会显示错误,例如这*不是一个函数。有人知道什么方法吗 PS我知道URI

有人知道我是否可以配置GoogleCaja,这样它就可以让一些精确的库正常工作,而不会被清理? 我有自己的CAJA服务器和基于NodeJS的应用程序。我将传递给GoogleCaja用户代码,它将主要与图表和图形相关,但所有库函数(如d3js、chart.js)都被CAJA阻止。 所有库都经过Caja并连接到用户文档,没有错误,但如果用户请求库的任何功能(例如
d3.select(“body”).append(“svg”)
),则它会显示错误,例如
这*不是一个函数。有人知道什么方法吗


PS我知道URI策略,但它似乎只控制所有内容,即来自同一来源域名的内容,即使库通过uriPolicy传递,Caja仍在检查它

您可以从uriPolicy.release函数将url返回到库的预缓解/预哄骗/受信任版本。您只需检查库url,如果它匹配,则返回预初始化url,否则返回null。例如:

var uriPolicy = {
    mitigate: function(uri) {
        if(/jquery\.js/.test(uri))
            return urlToMyJquery.js;
        else
            return null;
    }
}

你看到uriPolicy的缓解属性了吗?嗨!是的,我找到了,不幸的是我没能让它工作。我找不到它的任何文档,我在caja本身的源代码中找到了它。如果您有一些关于它如何工作的信息,我将非常感谢。谢谢,如果我想连接非预信任列表中的内容,该怎么办?例如D3.js。我如何从自己的存储中获取它?基本上,您可以将url返回到任何资源,无论其是否减轻。尽管一个未缓解的应用程序可能会给你的应用程序带来安全风险,但要非常小心