Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.03.2012, 18:00
Новичок на форуме
Отправить личное сообщение для Dan_G Посмотреть профиль Найти все сообщения от Dan_G
 
Регистрация: 03.03.2012
Сообщений: 5

eval не выполняет код в строке
<script type="text/javascript">

   var chr0 = new Uint16Array( 16 );
   var Str0;

	chr0[0] = 97;  // a
	chr0[1] = 108; // l
	chr0[2] = 101; // e
	chr0[3] = 114; // r
	chr0[4] = 116; // t
	chr0[5] = 40;  // (
	chr0[6] = 49;  // 1
	chr0[7] = 41;  // )


	Str0= String.fromCharCode(chr0[0]);
	for (i=1; i<9; i++) {
	Str0 += String.fromCharCode(chr0[i]);
	}

	to_s.innerHTML = Str0; // Выводит (ред. печатает): alert(1) 

	eval(Str0); // - Это не хочет выполняться !!!
        
        // Этот код выполняется:
        //Str0 = "alert(1)";
        //eval(Str0);

</script>

Не пойму почему не выполняется строка eval(Str0), при том что если раскоментировать последние две строки то они выплнятся. Подскажите в чём проблема ?

Последний раз редактировалось Dan_G, 03.03.2012 в 18:11.
Ответить с цитированием
  #2 (permalink)  
Старый 03.03.2012, 18:06
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от Dan_G
Подскажите в чём проблема ?
где определяется to_s?
и почему эта строка выводит алерт?
to_s.innerHTML = Str0;

И что вам мешает заглянуть в консоль?
Ответить с цитированием
  #3 (permalink)  
Старый 03.03.2012, 18:09
Новичок на форуме
Отправить личное сообщение для Dan_G Посмотреть профиль Найти все сообщения от Dan_G
 
Регистрация: 03.03.2012
Сообщений: 5

monolithed,
Выводит - в смысле печатает.
<body>
<p id='to_s'></p>
</body>
Ответить с цитированием
  #4 (permalink)  
Старый 03.03.2012, 18:17
Новичок на форуме
Отправить личное сообщение для Dan_G Посмотреть профиль Найти все сообщения от Dan_G
 
Регистрация: 03.03.2012
Сообщений: 5

Консоль ошибок
Ошибка: illegal character
Источник: file:///... ....html
Строка 47, Символ 8
Исходный код:
alert(1)
Ответить с цитированием
  #5 (permalink)  
Старый 03.03.2012, 18:49
Новичок на форуме
Отправить личное сообщение для Dan_G Посмотреть профиль Найти все сообщения от Dan_G
 
Регистрация: 03.03.2012
Сообщений: 5

Вопрос всё ещё открыт.

Ошибка illegal character мне ни о чём не говорит, массив chr0 я инициализировал похоже верно так как в Юникоде Basic Latin (базовая латиница) 0000-007F: совпадает с ASCII. Страничка сохранена в Юникоде. Что ещё нужно не пойму.
Ответить с цитированием
  #6 (permalink)  
Старый 04.03.2012, 13:08
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

var array = [97, 108, 101, 114, 116, 40, 49, 41],
i = array.length;

while (i--)
    array[i] = String.fromCharCode(array[i]);

Function(array.join(''))();


Для чего вам этот бред понадобился?
Ответить с цитированием
  #7 (permalink)  
Старый 04.03.2012, 15:55
Новичок на форуме
Отправить личное сообщение для Dan_G Посмотреть профиль Найти все сообщения от Dan_G
 
Регистрация: 03.03.2012
Сообщений: 5

monolithed,
Спасибо за рабочий пример.

- Извините, уже нашёл почему у меня eval(Str0) не выполнялся в первом примере, потому что в Str0 скопировал лишний элемент из массива for (i=1; i<9; i++)

Теперь всё работает:
<html><head><title></title></head>
<body></body>
<script type="text/javascript">

   var n0 = 8;
   var chr0 = new Uint16Array( n0 );
   var Str0;

	chr0[0] = 97;  // a
	chr0[1] = 108; // l
	chr0[2] = 101; // e
	chr0[3] = 114; // r
	chr0[4] = 116; // t
	chr0[5] = 40;  // (
	chr0[6] = 49;  // 1
	chr0[7] = 41;  // )

	Str0= String.fromCharCode(chr0[0]);
	for (i=1; i<n0; i++) {
	Str0 += String.fromCharCode(chr0[i]);
	}
	eval(Str0);
	Function(Str0)();
</script>
<html>

Последний раз редактировалось Dan_G, 04.03.2012 в 15:59.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
код нe работает в фаирфохе dadli Javascript под браузер 2 28.01.2012 21:18
Перехват eval ssmaslov Javascript под браузер 0 07.12.2011 13:52
упростить, но и усложнить код Александр х@к Элементы интерфейса 7 24.08.2011 21:36
Не работает eval в IE ..::Silence::.. Общие вопросы Javascript 8 25.03.2009 13:16
Roll-up menu Tanya Общие вопросы Javascript 5 29.08.2008 17:28