| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Как получить текст функции |
| Автор: flaviovich 25.9.2005, 17:10 |
| Здразвуйте знакоти! У меня вот такая проблема: мне нужно получить полный текст фунции в переменную. Функция находится во внешним файле: <script language="JavaScript" src="js/forms.js"></script> Я пробовал вот так var x = document.getElementsByTagName("script")[0]; alert(x); но это возвращает Object HTMLScriptElement. Скажи пожалуйста как дальше.. а может вообще не правильно делаю? |
| Автор: o.s.a. 25.9.2005, 17:16 | ||
|
| Автор: flaviovich 25.9.2005, 17:31 |
| А пример дадите? А то у меня получается только {} |
| Автор: o.s.a. 25.9.2005, 17:48 | ||
|
| Автор: Zeroglif 25.9.2005, 21:37 | ||||||||||
flaviovich
Это потому что метод, предложенный o.s.a, применить нужно к функции:
а не так:
Правда, в IE это всё равно не работает, но можно сделать так:
Или же (если в файле .js действительно всего одна функция) так:
|
| Автор: Sardar 25.9.2005, 21:43 |
| toSource() в IE не существует, юзаем toString() - выдаст как раз текст функции |
| Автор: flaviovich 25.9.2005, 22:00 | ||
| Спасибо большое ребята! Вы мне очень помогли, только дальше мне надо получить доступ к переменной. Допустим, у меня есть функция во внешним файле forms.js
Как получить значение 5? Заранне благодарю! |
| Автор: Zeroglif 26.9.2005, 08:12 |
| Переменная объявлена локально, доступа извне функции к ней нет. Или делай её глобальной (убирай var), или пусть функция её вернёт (return x), или, если условия задачи неизменяемы, то вытаскивай из строки заданный текст любыми подходящими строковыми методами. |
| Автор: Sardar 26.9.2005, 15:29 |
| Только помни, функция что может исполняться, это обьект "функция", а её исходный код это нечто совсем другое, скорее в целях отладки. А то чую какой то изврат ты задумал... Опиши задачу в целом. |
| Автор: flaviovich 26.9.2005, 19:07 |
| Функцию нельзя изменять. Вот что я задумал: Иметь весь текст функции в каком-нибудь массиве (допустим), и с ним делать все что угодно. Zeroglif угадал! Ну как, это возможно? или я плохо объяснял? |
| Автор: Zeroglif 26.9.2005, 21:45 | ||
Тебе бы лучше ясно форуму обозначить, какой результат треба получить, а так... можно много о чём фантазировать в свете возможностей великолепного Javascript. ;) |
| Автор: Sardar 26.9.2005, 21:51 | ||
Я с трудом представляю зачем это может понадобиться... В любом случае придёться писать парсер JS кода, которым будешь разбирать/собирать функцию. Затем полученное дело функции можешь превратить в обьект функцию через new Function(аргументы, тело) Если опишешь задачу, а не свои мысли, то вероятно получишь более правильное решение Добавлено @ 21:51 Zeroglif опередил |