Как я могу определить движок JavaScript из кода .js?

Есть ли способ с помощью кода JavaScript узнать, на каком движке JavaScript выполняется этот код?

Я не хочу, чтобы тип браузера был только движком JavaScript.


person Eduard Florinescu    schedule 18.10.2012    source источник
comment
Зачем вам это нужно? Возможно, есть другой способ решить вашу проблему.   -  person Asad Saeeduddin    schedule 18.10.2012
comment
Как в названии двигателя? В таком случае, можете ли вы определить набор имен, которые хотите идентифицировать?   -  person Šime Vidas    schedule 18.10.2012
comment
@Asad Есть: получить тип браузера и определить с помощью таблицы, кто есть кто, но для приложения html5 это не сработает.   -  person Eduard Florinescu    schedule 18.10.2012
comment
@EduardFlorinescu Почему это не сработает для приложения HTML5?   -  person Šime Vidas    schedule 18.10.2012
comment
@ ŠimeVidas Да, название движка, я не знаю, чего ожидать ... Мне нужен способ получить его, не ожидая каких-то конкретных   -  person Eduard Florinescu    schedule 18.10.2012
comment
Еще раз, если цель вашего приложения специально не включает в себя определение браузера, в котором оно запущено, в этом нет необходимости. Вы можете управлять проблемами совместимости с помощью обнаружения функций.   -  person Asad Saeeduddin    schedule 18.10.2012
comment
@ ŠimeVidas Возможно, разработчики Web Runtime не будут строить ее полностью на браузере и поставят другой движок. Не знаю.   -  person Eduard Florinescu    schedule 18.10.2012
comment
@EduardFlorinescu Если вы не знаете, какое имя вы могли бы ожидать, то что вы могли бы сделать с этим именем в любом случае?   -  person Šime Vidas    schedule 18.10.2012
comment
@Asad В основном мне нужно знать, двигатель ли это V8, но я также знаю, было бы лучше другое   -  person Eduard Florinescu    schedule 18.10.2012
comment
@EduardFlorinescu Хорошо, значит, вы хотите обнаружить V8 ... (для начала)   -  person Šime Vidas    schedule 18.10.2012
comment
Также было бы полезно иметь что-то, что дало бы результат при запуске без браузера на основе движка V8, такого как nodejs, silkjs или даже pyV8.   -  person Eduard Florinescu    schedule 18.10.2012
comment
@ ŠimeVidas Да, было бы здорово   -  person Eduard Florinescu    schedule 18.10.2012
comment
В конце этого ответа вы найдете нужную информацию. Не используйте это.   -  person Asad Saeeduddin    schedule 18.10.2012
comment
функция javaEnabled () {[собственный код]} также дается в spidermonkey   -  person Eduard Florinescu    schedule 18.10.2012
comment
@Asad Теперь я знаю, что это не V8, а что дальше?   -  person Eduard Florinescu    schedule 18.10.2012


Ответы (1)


См. Как определить, какой механизм javascript (v8 или JSC) используется во время выполнения в Android? для некоторого кода JavaScript, который использует обнаружение функций для определения платформы.

Также:

Я думаю, что лучший вопрос: зачем тебе все равно? По сути, вы попадаете в ловушку «обнаружения браузера», в которую многие люди попадали в конце 90-х - начале 00-х. Однако с тех пор мы узнали, что обнаружение функций является более полезным подходом, не в последнюю очередь потому, что функции, поддерживаемые в данном браузере, были (в основном) движущейся целью. Теперь есть код, работающий в IE9 с его значительно улучшенной поддержкой DOM и JavaScript, который не использует эти функции, потому что он выполняет обнаружение браузера и прибегает к методам IE6.

из: https://stackoverflow.com/a/6768595/1183010

person R. Oosterholt    schedule 29.10.2013
comment
У меня есть много мотивов, чтобы сделать это, но также и из любопытства. Одна из причин - это время выполнения в Интернете, которое есть во многих мобильных ОС, поддерживающих HTML5. Я могу автоматизировать развертывание приложения, которое запрашивает JS-движок, и знать, что нового внутри. - person Eduard Florinescu; 29.10.2013
comment
В этом случае есть код stackoverflow.com/a/6768595/1183010 для обнаружения движка (если вы настаиваете) - person R. Oosterholt; 29.10.2013