Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как определить системные шрифты посетителя? (https://javascript.ru/forum/misc/48066-kak-opredelit-sistemnye-shrifty-posetitelya.html)

Skeptik 18.06.2014 15:24

Как определить системные шрифты посетителя?
 
Есть у кого то рабочие скрипты как определить системные шрифты посетителя зашедшого на мой сайт(облазил весь инет так и не нашел).

Только установленный вариант нашел на сайте panopticlick.eff.org но не могу понять как он работает???

Через flash ? ActiveX ? или CSS???

Конкретно JS-код, проверяющий все, находится в
1) panopticlick.eff.org/resources/plugin-detect-0.6.3.js
2) panopticlick.eff.org/resources/deployJava.js
3) panopticlick.eff.org/resources/jquery.flash.js
Результат отправляется POST-запросов
panopticlick.eff.org/index.php?action=ajax_log_clientvars

Читал также что если через flash то это просто баг.

Кто может помочь и в какую сторону лучше двигатся что бы определить шрифты посетителя???

Aetae 18.06.2014 19:14

Все шрифты только через flash.
Через js можно только проверить есть ли у клиента шрифты из вручную заданного списка.

Flash решение отлично гуглится "javascript flash font list", javascript решение основано тупо на сравнении ширины и высоты span которому по списку подставляются шрифты и тоже легко гуглится.

MallSerg 18.06.2014 21:11

<embed height="1" flashvars="" pluginspage="http://www.adobe.com/go/getflashplayer" src="https://panopticlick.eff.org/resources/fonts2.swf" type="application/x-shockwave-flash" width="1" swliveconnect="true" id="id" name="flashfontshelper" >
<script>
function go (){
	obj = document.getElementById("id")
	if (typeof obj.GetVariable != "undefined") {
		fonts = obj.GetVariable("/:user_fonts");
		fonts = fonts.replace(/,/g,", ");
	}else{ fonts = "ошибка :'(("};
		alert(fonts);
}
</script><input type="button" onclick="go()" value="шрифты?">

флешку лучше скачать и положить на тот же домен


Часовой пояс GMT +3, время: 22:29.