Javascript.RU

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

document.createElement('script');
object[n[i]] = function ed() { alert() }

var sc = document.createElement('script');
				sc.innerHTML = object[n[i]];
				document.head.appendChild(sc);
				
				sc.onload = ed(); // если string то не работает

     sc.onload =  'как здесь указать марк функции в строковом   представлении, чтобы срабатывало '

Последний раз редактировалось Conus, 15.06.2016 в 19:41.
Ответить с цитированием
  #2 (permalink)  
Старый 15.06.2016, 19:10
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,556

Conus, напиши по-русски что ты хочешь...
Ответить с цитированием
  #3 (permalink)  
Старый 15.06.2016, 19:40
Аватар для Conus
Аспирант
Отправить личное сообщение для Conus Посмотреть профиль Найти все сообщения от Conus
 
Регистрация: 05.12.2015
Сообщений: 85

ed() = object.slice(7, 11)

script.onload = object.slice(7, 11)

дело в том что так не срабатывает фунция
а если в коде прописан марк функции script.onload = ed() то срабатывает

допустим
var functio = 'ed()';
script.onload = functio
и не работает

Последний раз редактировалось Conus, 15.06.2016 в 19:45.
Ответить с цитированием
  #4 (permalink)  
Старый 15.06.2016, 19:42
Аватар для pureJS
Аспирант
Отправить личное сообщение для pureJS Посмотреть профиль Найти все сообщения от pureJS
 
Регистрация: 04.06.2016
Сообщений: 70

Сообщение от Conus Посмотреть сообщение
sc.onload = ed(); // если string то не работает
//sc.onload =  как здесь указать марк функции в строковом представлении, чтобы срабатывало

Conus, правильно будет так:
sc.onload = ed; //ссылка на функцию, но никак не её вызов
Ответить с цитированием
  #5 (permalink)  
Старый 15.06.2016, 19:50
Аватар для Conus
Аспирант
Отправить личное сообщение для Conus Посмотреть профиль Найти все сообщения от Conus
 
Регистрация: 05.12.2015
Сообщений: 85

а как сделать вызов из строки
Ответить с цитированием
  #6 (permalink)  
Старый 15.06.2016, 19:51
Аватар для pureJS
Аспирант
Отправить личное сообщение для pureJS Посмотреть профиль Найти все сообщения от pureJS
 
Регистрация: 04.06.2016
Сообщений: 70

Сообщение от Conus Посмотреть сообщение
а как сделать вызов из строки
Напиши код как ты это себе представляешь.
Ответить с цитированием
  #7 (permalink)  
Старый 15.06.2016, 19:56
Аватар для Conus
Аспирант
Отправить личное сообщение для Conus Посмотреть профиль Найти все сообщения от Conus
 
Регистрация: 05.12.2015
Сообщений: 85

var n = Object.keys(object).sort(function (key) { return object[key] }) 
    for(i in n)
    {   
		if(typeof(object[n[i]]) == 'function')
		{
			if(n[i] != 'one') { e.setAttribute(n[i], 'new Function'); e.Function = object[n[i]]; }	
			else
			{		
				var v = '', x = '' + object[n[i]];
			    for (c in x) 
				{
					v = x.slice(c, (x.length- 1));
					if(x[c] == ' ') { for(var q in v) { if(v[q] == ')') { q++; v = v.slice(0, q); break; } }  break; }  
				}
                   
				var sc = document.createElement('script');
				sc.innerHTML = object[n[i]];
				document.head.appendChild(sc); 
				
				sc.onload = ed; 
				sc.onload = v //	this = я себе не представляю!
			
			
			}
		}
Ответить с цитированием
  #8 (permalink)  
Старый 15.06.2016, 20:04
Аватар для pureJS
Аспирант
Отправить личное сообщение для pureJS Посмотреть профиль Найти все сообщения от pureJS
 
Регистрация: 04.06.2016
Сообщений: 70

Напиши ВСЕГО 1 СТРОЧКУ:
1. Строка с функцией.
Ответить с цитированием
  #9 (permalink)  
Старый 15.06.2016, 20:14
Аватар для Conus
Аспирант
Отправить личное сообщение для Conus Посмотреть профиль Найти все сообщения от Conus
 
Регистрация: 05.12.2015
Сообщений: 85

какую строчку
мне из объекта вытянуть нужно функцию и вызвать её же после добавления в head

как сделать вызов?
Ответить с цитированием
  #10 (permalink)  
Старый 15.06.2016, 20:22
Аватар для pureJS
Аспирант
Отправить личное сообщение для pureJS Посмотреть профиль Найти все сообщения от pureJS
 
Регистрация: 04.06.2016
Сообщений: 70

Сообщение от Conus Посмотреть сообщение
а как сделать вызов из строки
Сообщение от Conus Посмотреть сообщение
какую строчку
мне из объекта вытянуть нужно функцию и вызвать её же после добавления в head

как сделать вызов?

Сначала ты пишешь про строку, потом уже отрицаешь это.

Думаю, что я после долгих раздумий понял, что ты имеешь ввиду:
object[n[i]] = "function ed(){alert('test')}" //строка

var sc = document.createElement('script');
sc.text = object[n[i]];
document.head.appendChild(sc);

sc.onload = ed;

Последний раз редактировалось pureJS, 15.06.2016 в 22:45.
Ответить с цитированием
Ответ


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

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