Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Контекс выполнения 'eval' / 8 сообщений из 8, страница 1 из 1
30.05.2009, 18:54
    #36017268
private
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контекс выполнения 'eval'
Привет!

По умолчанию JS eval выполняется в глобальном контексте, но вроде как-то можно ее выполнить также в контексте DOM элемента.

Как это сделать? ( Гугл не помог :( )

Ниже пример, который не работает.
автор
<html>
<body>
<div id="test">Text</div>
</body>
</html>

test = document.getElementbyID('test');
test.eval("this.innerHTML"); // должно быть равно "Text" но на самом деле вызывает ошибку.
...
Рейтинг: 0 / 0
31.05.2009, 01:08
    #36017424
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контекс выполнения 'eval'
Что для eval() есть this?
Что для test есть eval()?

Чтобы интерпретатор мог, он бы выдал 2 ошибки.
...
Рейтинг: 0 / 0
31.05.2009, 17:49
    #36017725
private
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контекс выполнения 'eval'
Т.е. так сделать нельзя? eval всегда выполняется глобально?

this - имеется ввиду мне нужна ссылка внутри скрипта на обьект в контексте которого он выполняется.
...
Рейтинг: 0 / 0
31.05.2009, 19:43
    #36017794
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контекс выполнения 'eval'
Офигеть! Что алерт не написать, чтобы посмотреть какой там this?
...
Рейтинг: 0 / 0
31.05.2009, 22:05
    #36017932
private
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контекс выполнения 'eval'
Решил :)
Код: plaintext
1.
2.
3.
4.
UID.last_result = document.getElementbyID('test');

script = "$this.innerHTML"

eval(script.sub(/\$this/, "UID.last_result"))
// ==> Text
...
Рейтинг: 0 / 0
01.06.2009, 11:31
    #36018544
зы
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контекс выполнения 'eval'
а какой в этом смысл?

помнится ff сделали так что евалить можно в контексте любого объекта, доставая оттуда приватные переменные. Все сразу заплакались о безопасности и в обновленных сборках это прикрыли обратно.
...
Рейтинг: 0 / 0
01.06.2009, 17:52
    #36019736
private
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контекс выполнения 'eval'
Я ищу объект в одном скрипте а выполняю операции с ним в другом, и не могу объединить их в один.
...
Рейтинг: 0 / 0
01.06.2009, 18:28
    #36019807
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контекс выполнения 'eval'
Так может начать немного дальше и спросить о более глобальной задаче, чем о манипуляциях с eval? eval - одна из тех функций, к которым надо прибегать при крайних случаях (типа парсинга JSON).
А то твои телодвижения с этой функцией хочется назвать нехорошим словом ...
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Контекс выполнения 'eval' / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]