Передача переменной в презентации

Обсуждение работы системы JetSwap. Общий форум для всех вопросов, для которых не создано отдельных форумов.
Аватара пользователя
leny1984
Сообщения: 220
Зарегистрирован: 30 окт 2010, 20:31

Передача переменной в презентации

Непрочитанное сообщение leny1984 »

Есть рабочий скрипт:

Код: Выделить всё

function addScript(url,callback){
    var s=document.createElement('script');
    s.type='text/javascript';
    document.getElementsByTagName('head')[0].appendChild(s);
    s.src=url;
    s.onload=callback;
}
addScript('http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js',
function(){
		$(document).ready(function(){
		var kod = ($('.b-adv').html());
		var a = (kod.indexOf('goldendart'));
		var b = /рекурсивные\s\<i\sclass="b-wbr"\>\<\/i\>и\sбоевые\sв\sЧерёмушках\s!\s\<i\sclass="b-wbr"\>.{28}\n.{24}\n.{31}\n.{250,280}/;
		var c = kod.match(b);
		
		div=document.createElement("div");
		div.innerHTML= c;
		link1= div.getElementsByTagName("a")[0].href
								   });

								});
Как сделать так чтобы переменная link1 передавалась в последующие команды в презентации?
Читал джетовский мануал - ничего не понял.
при помощи этой команды я получаю ссылку, которая лежит в переменной link1. Нужно чтобы в последующих командах можно было использовать эту ссылку. Я хочу отправить событие этой ссылке и следующей командой сделать поиск по этой ссылки.
Подскажите пожалуйста как лучше, и вообще, как это сделать?

Аватара пользователя
alerzo
Сообщения: 331
Зарегистрирован: 27 ноя 2010, 14:43
Контактная информация:

Re: Передача переменной в презентации

Непрочитанное сообщение alerzo »

тоже сталкивался с такой проблемой. перепробовал все способы, но переменные не передаются из js. интересно узнать как присваивать переменным джета переменные из обычных js, чтобы с ними можно было работать в командах презентации.

tester1985
Сообщения: 44
Зарегистрирован: 23 авг 2009, 23:39

Re: Передача переменной в презентации

Непрочитанное сообщение tester1985 »

как вариант - куки

Аватара пользователя
Support
Служба поддержки
Сообщения: 4558
Зарегистрирован: 08 фев 2009, 19:24
Откуда: JetSwap
Контактная информация:

Re: Передача переменной в презентации

Непрочитанное сообщение Support »

alerzo писал(а):тоже сталкивался с такой проблемой. перепробовал все способы, но переменные не передаются из js. интересно узнать как присваивать переменным джета переменные из обычных js, чтобы с ними можно было работать в командах презентации.
Если вы хотите саму переменную присвоить и к ней потом обращаться, то можно использовать eval.
Если же значение переменной, то проблем быть не должно в принципе.
Может быть я вас не очень понял, разъясните подробнее, что не получается.
С уважением, Служба поддержки.
http://www.jetswap.com

Аватара пользователя
leny1984
Сообщения: 220
Зарегистрирован: 30 окт 2010, 20:31

Re: Передача переменной в презентации

Непрочитанное сообщение leny1984 »

Support, огромное спасибо!
Разъясняю подробнее.
Скрипт работает на jquery и javascript
jquery тут всего две строчки:

Код: Выделить всё

      $(document).ready(function(){
      var kod = ($('.b-adv').html()); //вытаскивает блок кода .....
мог бы сделать на javascript, но он не работает с классами

Код: Выделить всё

      var b = /рекурсивные\s\<i\sclass="b-wbr"\>\<\/i\>и\sбоевые\sв\sЧерёмушках\s!\s\<i\sclass="b-wbr"\>.{28}\n.{24}\n.{31}\n.{250,280}/; // регулярное выражение.
      var c = kod.match(b); // Ищет совпадениеиз всего пода по регулярному выражению
      
      div=document.createElement("div"); 
      div.innerHTML= c; 
      link1= div.getElementsByTagName("a")[0].href; // вытаскивается ссылка и заносится в переменную link1
вкод скрипта без подключения jquery:

Код: Выделить всё

		$(document).ready(function() {
		var kod = ($('.b-adv').html());
		var b = /рекурсивные\s\<i\sclass="b-wbr"\>\<\/i\>и\sбоевые\sв\sЧерёмушках\s!\s\<i\sclass="b-wbr"\>.{28}\n.{24}\n.{31}\n.{10,280}/;
		var c = kod.match(b);
		
		div=document.createElement("div");
		div.innerHTML= c;
		link1= div.getElementsByTagName("a")[0].href;

Подставляю в этот код для подключения библиотеки jquery
код с уже подключенным jquery:

Код: Выделить всё

function addScript(url,callback){
    var s=document.createElement('script');
    s.type='text/javascript';
    document.getElementsByTagName('head')[0].appendChild(s);
    s.src=url;
    s.onload=callback;			}
	
addScript('http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js',
function(){
		
		$(document).ready(function() {
		var kod = ($('.b-adv').html());
		var b = /рекурсивные\s\<i\sclass="b-wbr"\>\<\/i\>и\sбоевые\sв\sЧерёмушках\s!\s\<i\sclass="b-wbr"\>.{28}\n.{24}\n.{31}\n.{10,280}/;
		var c = kod.match(b);
		
		div=document.createElement("div");
		div.innerHTML= c;
		link1= div.getElementsByTagName("a")[0].href;
		
									  })
		  });
В переменной link1 лежит ссылка . нужно переделать весь этот скрипт так чтобы его понимал джет.
Когда я весь этот скрипт вставляю в перезентацию командой вставки скрипта - ничего не работает, хотя скрипт проверен на денвере и работает.
По джетовскому мануалу пробовал сделать так
..........................
<setvar(link1=div.getElementsByTagName("a")[0].href)>;
при тесте во вкладке переменные было написано
link1=div.getElementsByTagName("a")[0].href
Непонятно почему джет вместо ссылки вывел функцию за место которой должна быть ссылка.
Пробовал таким образом менять все переменные - не работает.
Объясните пожалуйста как решить проблему.
Приведите пожалуйста пример использования функции eval.
Заранее очень благодарен

Аватара пользователя
Support
Служба поддержки
Сообщения: 4558
Зарегистрирован: 08 фев 2009, 19:24
Откуда: JetSwap
Контактная информация:

Re: Передача переменной в презентации

Непрочитанное сообщение Support »

В этом случае нужно использовать динамическую настройку презентации.
После link1= div.getElementsByTagName("a")[0].href; добавить
alert("prs::<get(key)>::setvar::link1=" + link1);

или же заменить на
alert("prs::<get(key)>::setvar::link1=" + div.getElementsByTagName("a")[0].href );

Тогда в переменной презентации link1 будет содержаться значение переменной javascript link1.

Если делать <setvar(link1=div.getElementsByTagName("a")[0].href)> то переменная link1 получит значение в виде текста div.getElementsByTagName("a")[0].href (что у вас и получилось), и этот текст не будет обработан javascript.

Тогда в последующих командах презентации уже можно будет вставлять значение переменной link1 с помощью <getvar(link1)>

По поводу eval см. http://javascript.ru/eval
Но в данном случае он не нужен.
С уважением, Служба поддержки.
http://www.jetswap.com

Аватара пользователя
leny1984
Сообщения: 220
Зарегистрирован: 30 окт 2010, 20:31

Re: Передача переменной в презентации

Непрочитанное сообщение leny1984 »

Попробовал как вы посоветовали - не получилось.
Скрипт вставил в одну строчку, иначе вообще не работает.

Код: Выделить всё

................................................. // Другой код
var cmdname="script";
var cmdtime=parseInt(prompt("prs::" + prskey + "::parse::<rndr(7:12)>"));
var cmdparam="function addScript(url,callback) {var s=document.createElement('script'); s.type='text/javascript'; document.getElementsByTagName('head')[0].appendChild(s); s.src=url;  s.onload=callback; } addScript('http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js', function(){ $(document).ready(function() { var kod = ($('.b-adv').html()); var b = /.{200,300}\n.{6}\n.{21}рекурсивные\s\<i\sclass='b-wbr'\>\<\/i\>и\sбоевые\sв\sЧерёмушках\s!\s\<i\sclass='b-wbr'\>.{28,50}\n.{24,50}\n.{31,60}\n.{10,300}/; var c = kod.match(b); div=document.createElement('div'); div.innerHTML= c; alert('prs::<get(key)>::setvar::link1=' + div.getElementsByTagName('a')[0].href );  }); });";
alert("prs::" + prskey + "::add::" + cmdname + "::" + cmdtime + "::" + cmdparam);

var cmdname="nav";
var cmdtime=parseInt(prompt("prs::" + prskey + "::parse::<rndr(7:10)>"));
var cmdparam="<getvar(link1)>";
alert("prs::" + prskey + "::add::" + cmdname + "::" + cmdtime + "::" + cmdparam);

alert("prs::" + prskey + "::set::cmdindex=1;cmdtime=0;");
Вроде все верно, что не так?
Я тут подумал, там же скрипт идет в функции, а из функции переменная не передается. Может из-за этого не работает?

Аватара пользователя
Support
Служба поддержки
Сообщения: 4558
Зарегистрирован: 08 фев 2009, 19:24
Откуда: JetSwap
Контактная информация:

Re: Передача переменной в презентации

Непрочитанное сообщение Support »

Тут надо смотреть, какие команды добавляются в презентацию, с таким кодом легко можно что-то и напутать :)
Если в презентации все нормально, то тогда попробовать задать переменной какое-нибудь значение сначала без поиска нужной ссылки, если значение задается и переход идет, искать что не так в коде.
С уважением, Служба поддержки.
http://www.jetswap.com

Аватара пользователя
leny1984
Сообщения: 220
Зарегистрирован: 30 окт 2010, 20:31

Re: Передача переменной в презентации

Непрочитанное сообщение leny1984 »

Вы же мне сами сказали, нужно это реализовывать при помощи динамической презентации. В ее настройках у меня только одна команда вставки скрипта, в самой команде подключения файла самого скрипта. Напомню, что скрипт замечательно работает на локальном компьютере.
Пробовал вот так:

Код: Выделить всё

    ................................................. // Другой код
    var cmdname="script";
    var cmdtime=parseInt(prompt("prs::" + prskey + "::parse::<rndr(7:12)>"));
    var cmdparam="var a=1; var b=2; alert('prs::<get(key)>::setvar::c=' + a+b; );";
    alert("prs::" + prskey + "::add::" + cmdname + "::" + cmdtime + "::" + cmdparam);

    var cmdname="nav";
    var cmdtime=parseInt(prompt("prs::" + prskey + "::parse::<rndr(7:10)>"));
    var cmdparam="<getvar(c)>";
    alert("prs::" + prskey + "::add::" + cmdname + "::" + cmdtime + "::" + cmdparam);

    alert("prs::" + prskey + "::set::cmdindex=1;cmdtime=0;");

то есть сложить переменные a и b. То же ничего не работает.
когда вы говорили , в данной ситуации нужно применить димамическую презентацию, вы имели ввиду применить ее так, как я сделал или разделить весь скрипт на несколько частей? Хотя я не представляю как можно его разделить
Этот скрипт вообще понимает джет? Просто я подумал, может все переменные из этого скрипта переделать подобным образом:
alert('prs::<get(key)>::setvar::link1=' + div.getElementsByTagName('a')[0].href );
или он понимает весь этот скрипт, только нужно передать последнюю переменную?
Помогите пожалуйста решить проблему, уже четвертый день мучаюсь.

Аватара пользователя
Support
Служба поддержки
Сообщения: 4558
Зарегистрирован: 08 фев 2009, 19:24
Откуда: JetSwap
Контактная информация:

Re: Передача переменной в презентации

Непрочитанное сообщение Support »

Вовсе не обязательно переписывать это именно скриптом для динамической презентации, достаточно будет сделать команду "Вставить скрипт" со скриптом, указанным выше.
С уважением, Служба поддержки.
http://www.jetswap.com

Ответить