1

我正在使用 Google Caja 来清理我网站上的用户输入。我目前正在传递给 caja.whenReady() 的回调中处理用户的输入。但是,在 Microsoft Edge 上,永远不会调用回调,因为 Caja 无法确保 Edge 安全。如果 Caja 不起作用,我想回退到处理用户的内容服务器端,在这里我将简单地去除所有 JavaScript。

如何检查 Caja 是否适用于用户的浏览器?

4

1 回答 1

0

下面的代码将为您提供一个函数,该函数将在 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;
});
于 2015-11-03T00:19:59.197 回答