我正在使用 Google Caja 来清理我网站上的用户输入。我目前正在传递给 caja.whenReady() 的回调中处理用户的输入。但是,在 Microsoft Edge 上,永远不会调用回调,因为 Caja 无法确保 Edge 安全。如果 Caja 不起作用,我想回退到处理用户的内容服务器端,在这里我将简单地去除所有 JavaScript。
如何检查 Caja 是否适用于用户的浏览器?
我正在使用 Google Caja 来清理我网站上的用户输入。我目前正在传递给 caja.whenReady() 的回调中处理用户的输入。但是,在 Microsoft Edge 上,永远不会调用回调,因为 Caja 无法确保 Edge 安全。如果 Caja 不起作用,我想回退到处理用户的内容服务器端,在这里我将简单地去除所有 JavaScript。
如何检查 Caja 是否适用于用户的浏览器?
下面的代码将为您提供一个函数,该函数将在 Caja 调用其回调browserSupportsCaja()
后随时返回 true 。whenReady()
这样您就可以在初始化后确定是否支持 Caja。
如果您在完成初始化之前检查 Caja 支持,那么您将得到一个误报。要抓住这一点,只需将您想要在 Caja 准备好后执行的代码放入whenReady()
回调中,并假设 Caja 在其他任何地方都不可用。
caja.initialize({
cajaServer: 'https://caja.appspot.com/'
});
function browserSupportsCaja() {
return browserSupportsCaja.return_value;
}
browserSupportsCaja.return_value = false;
caja.whenReady( function() {
browserSupportsCaja.return_value = true;
});