Существуют ли кросс-браузерные способы обнаружения поддержки азиатских языков или, в частности, японского?
Вы имеете в виду «установлен ли японский шрифт»? Потому что единственный другой аспект «поддержки азиатских языков», который могут настраивать современные ОС, связан с тем, известны ли кодировки символов, такие как Shift-JIS (кодовая страница 932 в Windows). Но в общем случае это вам не нужно, так как вы можете просто использовать UTF-8, который намного чище и поддерживается везде.
Как правило, вы не можете напрямую сказать, установлен шрифт для определенного диапазона символов или нет, но есть обходные пути. Как, например, измерение визуализированного размера текста на странице:
var half= document.createElement('span');
var full= document.createElement('span');
half.appendChild(document.createTextNode('\uFF71'));
full.appendChild(document.createTextNode('\u30A2'));
document.body.insertBefore(half, document.body.firstChild);
document.body.insertBefore(full, document.body.firstChild);
var havejapanesefont= half.offsetWidth!=full.offsetWidth;
document.body.removeChild(half);
document.body.removeChild(full);
Это временно создает элементы, содержащие половинную и полную ширину вариантов катаканы «а». Если доступен японский шрифт, мы ожидаем, что они будут разной ширины. Если такого шрифта не существует, они, скорее всего, будут отображаться как похожие символы «не подлежащие изменению» с такой же шириной.