chrome обнаруживает целое число как NPVariantType_Double с плагином npruntime? - PullRequest
0 голосов
/ 03 августа 2011

Я пытаюсь вызвать функцию через javascript через мой плагин NPRuntime. но когда я передаю целочисленное значение функции, chrome обнаруживает это как NPVariantType_Double, в то время как firefox принимает то же самое, что и NPVariantType_Int32. Можем ли мы избежать этого без изменения скрипта, чтобы гарантировать, что и Firefox, и Chrome обнаружат его как NPVariantType_Int32.

Ответы [ 2 ]

2 голосов
/ 04 августа 2011

Краткий ответ: нет, не совсем.Они дадут это вам в том формате, в котором они решили дать вам.Я рекомендую вам привести его к int32.

Если вы действительно беспокоитесь о том, как он собирается поступить, и хотите, чтобы формат оставался точно таким же, передайте его как строку ииспользуйте некоторую форму лексического приведения, чтобы преобразовать ее в нужный вам числовой формат.

Помните, что javascript динамически типизирован, поэтому с их точки зрения это не должно иметь значения.Это всего лишь одна из тех раздражающих вещей: - / FireBreath «решает» эту проблему просто, не заботясь о том, что предоставляет браузер, и конвертируя его в тип данных, который функция ожидает.

0 голосов
/ 04 августа 2011

Таксиан прав.Chrome и Opera (насколько я помню) возвращают в основном NPVariantType_Double, даже если это представляет местоположение элемента (в пикселях). Вы можете создать функцию, которая преобразует NPVariantType_Double и NPVariantType_Int32 во что угодно.

...