Как проверить, поддерживает ли браузер пользователя Google Caja?

Я использую Google Caja для очистки пользовательского ввода на моем сайте. В настоящее время я обрабатываю ввод пользователя внутри обратного вызова, который я передаю в caja.whenReady(). Однако в Microsoft Edge обратный вызов никогда не вызывается, потому что Caja не может защитить Edge. В случае, если Caja не работает, я хочу вернуться к обработке на стороне сервера содержимого пользователя, где я просто уберу весь JavaScript.

Как я могу проверить, работает ли Caja с браузером пользователя?


person Kurt Tomlinson    schedule 02.11.2015    source источник


Ответы (1)


Приведенный ниже код даст вам функцию browserSupportsCaja(), которая вернет true в любое время после того, как Caja вызовет свои 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;
});
person Kurt Tomlinson    schedule 03.11.2015