Как проверить на стороне клиента, заблокирован ли сайт?
На работе заблокированы соцсети. Имеется сайт, на котором установлены кнопки от соцсетей (поделиться, лайки). Так вот, если facebook не может подключиться к своему SDK, то выдает сообщение на пол-страницы о том, что сервер заблокирован.
Вопрос в том, как проверить, доступен ли facebook, и в зависимости от этого уже подключать или не подключать кнопку на клиенте? Или, может, есть другие способы решить проблему?
Проще всего (если это не единственный способ) попробовать подсосать картинку (например логотип).
Только я не нашёл нормальную картинку на домене fb. Надеюсь вам это удастся.
спасибо за ответ! я сделал следующим образом. Все вот эти плагины при вставке на сайт запрашивают скрипт, например facebook запрашивает //connect.facebook.net/ru_RU/all.js. Если предварительно попробовать загрузить этот скрипт через jQuery метод getScript, то в одном из его параметров вернется объект jqxhr. В jqxhr.status содержится код статуса. Если пришел код 200, значит все в порядке и можно грузить плагин. Как то так.
$.getScript("https://connect.facebook.net/ru_RU/all.js", function(data, textStatus, jqxhr) {
if (jqxhr.status == 200)
{
//здесь подгружаем уже плагин с кнопкой
}
Так в чем дело? Загрузили страницу, прошлись по всем бекендам социальным хоть ГЕТ-запросами, по результатам отобразили нужные кнопки или вообще ничего не отобразили.
У вас для каждой сети есть код кнопки, в котором загружаются скрипт(ы) этой сети с определенных ссылок. Вам нужно для каждой сети проверять доступность этих скриптов гет- или хеад-запросами. Если вам в ответ пришел код 200, значит сервер/скрипт доступен и можно отобразить кнопку.
Вы не совсем наверное поняли суть вопроса. При чем тут тимвьюер, если речь идет о проверке доступности на стороне клиента (т.е. в браузере средствами javascript), доступен ли сайт или заблокирован.