2009-12-03 3 views
0

Мне интересно, почему, когда я вызываю: eval («myFunc (1,2,3)») в консоли Firebug на отображаемой странице, функция выполняется должным образом , но когда я вызываю один и тот же eval внутри javascript внутри этой страницы, я получаю сообщение «не определено», которое появляется в консоли Firebug. Часть моей проблемы заключается в том, что у меня нет контроля над входящим HTML/JS, и я не могу найти, где функция определена. Поэтому я думаю, что мои вопросы: почему я получаю эту ошибку и как я могу найти, где определена функция, которую я пытаюсь вызвать? Если я вытащил источник страницы, я могу видеть вызовы функции, но я не вижу, где она определена.Javascript eval приводит к «неопределенной функции», но работает в Firebug

ответ

2

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

+0

Так что я сделал это ... очень полезно, и теперь я вижу, где он определен. Это действительно файл javascript из внешних источников (src =). Мой вопрос сейчас ... Я замечаю, что кажется, что он передает какой-то параметр, когда он загружается. Он выглядит так: Что такое «? T = 8» Проходит ли параметр? – GregH

+0

возможно - если он использует его в скрипте, найдите var t - может быть просто анти-кеширование. – matpol

1

Функция, вероятно, определена во внешнем файле. В firebug, если вы просто набрали myFunc (без паретинга), вы сможете получить ссылку на клик для источника.

Причина, по которой он не работает в вашем eval-скрипте, вероятно, что он выполняется до того, как функция определена. Попробуйте отложить его, скажем, поместив его в загрузку страницы или прослушиватель событий.