Просмотр полной версии : ExternalInterface.call ошибки
Приветствую всех.
Вызываю функцию яваскрипта и передаю ей параметры , название функции тоже получаю в флеше как флеш варс. Параметры ,что перерадаются в яваскрипт функцию это Json вида
{"file":"bcac5d9ac429ad90fd99d05c5aa383c7.wav"}
В флеше вызываю функцию яваскрипта так:
var data=event.target["data"];
var fun: String = callback_after_save + "('" + data + "')";
ExternalInterface.call(fun);
В консоле фаерфокса появляется ошибка
SyntaxError: expected expression, got ')'
try { __flash__toXML(()) ; } catch (e) { "<undefined/>"; }
Функция отрабатывает верно и параметры принимает верно. Но эта ошибка возникает постоянно.
Откуда она и с чем связана? Как исправить???
caseyryan
23.03.2015, 21:02
а если туда не JSON передавать, а просто строку bcac5d9ac429ad90fd99d05c5aa383c7.wav. Ошибка тоже вываливается?
Так, чисто гипотеза, может из-за кавычек в JSON'е не правильно обрабатывается вызов
п.с. что такое callback_after_save ? Это переменная типа String?
Да вот с того Jsona получаю имя файла.И отрабатывает,но в консоле фирефокса выдаёт эту ошибку.Т.е да как будто формат не нравится Jsona. Не знаю как испаравить- если бы не отрабатывала функция то было бы понятнее .
function reviewAudioAfterSave(data) {
data = JSON.parse(data);
alert(data.file);
}
Но отрабатывает и имя файла показывает.
В чём тут ошибка - не понимаю.
caseyryan
23.03.2015, 21:15
я имею в виду если из флеша не перадавать джсон, а просто вызывать так:
var data=event.target["data"];
var fun: String = callback_after_save + "('bcac5d9ac429ad90fd99d05c5aa383c7.wav')";
ExternalInterface.call(fun);
ну и в JS соответственно
function reviewAudioAfterSave(data) {
alert(data);
}
вывалится ошибка?
Да переменная - название функции - получаю её как флешварс.
Добавлено через 1 минуту
Да вроде так не вываливается ошибка...так разве формат моего json не верный??
Да вроде так не вываливается ошибка...так разве формат моего json не верный??
Плевое дело проверить (https://www.google.ru/webhp?sourceid=chrome-instant&ion=1&espv=2&es_th=1&ie=UTF-8#newwindow=1&q=json%20validator) твой JSON.
Так, загуглил (http://stackoverflow.com/questions/5149387/why-does-externalinterface-breaks-when-i-pass-parameter-with-json-like-string) за пять секунд, может оно?
undefined
23.03.2015, 22:04
Так, загуглил за пять секунд, может оно?
хех, копеечный баг, но исправлять уже нельзя.Похоже, адоб сделал себя заложником своей нерасторопности)
Мне кажется вы неправильно вызываете ExternalInterface.call.
Вы её так вызываете
ExternalInterface.call('jsFunc(blabla)')
а надо так
ExternalInterface.call('jsFunc', 'blabla')
Но сам не пользовался, может чушь говорю.
Пробывал и так ..ох тоже начинаю думать ,что это адобовский баг .Раньше года 2 назад таких ошибок не выдавало точно....ж(
caseyryan
24.03.2015, 16:57
Раньше года 2 назад таких ошибок не выдавало точно....ж(
Может года 2 назад и отладчик в ФФ был другой ;)
Ура решилось. Тупо не ту функцию менял по невнимательности. Всё работает -ошибок не выдаёт.
Всем спасибо.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.