PDA

Просмотр полной версии : Referer в ActionScript


SirJ
30.07.2007, 21:16
Здравствуйте!
Читал ваш форум, но нигде не нашел ответа на мой вопрос, хотя были и близкие варианты. Суть вопроса:

у меня есть actionscript такого содержания:

function replacer(str:String):String
{
var res:String = "";
for (var letter=0; letter<str.length; letter++)
{
var examine:String = str.substr(letter,1);
res += (examine=="&")?"^^":examine;
}
return res;
}
onLoad()
{
var search_string:String = "keyword";
var misc:Number = 123456;
var referrer:String = "";
referrer = replacer(referrer);

getURL("http://www.sitename.name/index.php", "_self", "GET");
}


и нигде я не могу найти "Как средствами actionscript" сохранить в строку referer, как например можно сделать с помощью javascript: var ref = new String(document.referrer);
Подскажите пожалуйста, или подскажите как передать флэшу переменную ref из javascript(тоже пробовал вариации, но не работает), вот как делал:

<script language="javascript" type="text/javascript">
function preload()
{
var ref = new String(document.referrer);
var opera = Boolean(window["opera"]);
var MSIE = (navigator.userAgent.indexOf("Microsoft") != -1) && !opera;
var flash = MSIE ? window["script"] : document["script"];
flash.SetVariable("referrer", ref);
}
</script>

</HEAD>

<BODY onLoad="preload()">
<CENTER>

<TABLE WIDTH=100% height="10%" BORDER=0 CELLPADDING=0 CELLSPACING=0>
<TR>
<TD>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" odebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="236" height="55" id="script" name="script">
<param name="movie" value="script.swf">
<param name="quality" value="high">
<embed src="script.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="236" height="55" NAME="script"></embed>
</object>
new String(document.referrer);
</TD>
</tr>
</TABLE>

</CENTER>
</BODY>
</HTML>


Заранее спасибо!

Kikasso
30.07.2007, 21:42
flashvars

SirJ
30.07.2007, 22:03
А покажите на примере использование в данной задачи flashvars, пожалуйста!!!

Ну или подскажите как джаваскриптом прописывать referer в flashvars ???

etc
30.07.2007, 22:35
Ответ на ваш вопрос есть на форуме, его едва ли не каждый день задают.

SirJ
30.07.2007, 22:56
Мне просто не сильно понятно как это все использовать, некоторые моменты понятны, а некоторые нет, вот например сделал так:

<TABLE WIDTH=100% height="10%" BORDER=0 CELLPADDING=0 CELLSPACING=0>
<TR>
<TD>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" odebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="236" height="55" id="script" name="script">
<param name="movie" value="script.swf">
<param name="quality" value="high">

<script language="javascript" type="text/javascript">
var req = String(document.referrer);
document.write('<PARAM NAME=FlashVars VALUE="ref='+req+'">');
document.write('<embed src="script.swf" FlashVars="ref='+req+'" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="236" height="55" NAME="script"></embed>');
</script>

</object>
</TD>
</tr>
</TABLE>

результата нету (((, что не правильно делаю???

etc
30.07.2007, 23:00
Нет, с помощью JS надо вписывать вообще весь тег <object> вместе с потрохами. И в нужном месте вписывать нормальные flashvars.
В приведенном коде все верно, за исключением того, что надо весь тег object через document.write прогонять.

SirJ
30.07.2007, 23:16
Понял, спасибо большое.
Прошу прощения, что отписался сначала в разделе для профи =)
Если поиск не поможет вдруг по другим вопросам(а они появятся чувствую), то буду писать!

SirJ
30.07.2007, 23:36
А еще вот вопросик по ходу всплыл:
используя

var referrer:String = _root.ref;

ф-ей getURL(); ссылке методом пост передается ведь ВСЕ переменные, т.е. и ref, а как сделать чтобы ref использовалась только для присваивания переменной referrer, но не передавалась вместе со всеми переменными?

etc
30.07.2007, 23:40
Через getURL никаких переменных никуда не передается. Заголовок HTTP_REFERER поменять также нельзя.

Можно передать refererrer так:

getURL('http://site.ru/script.php?ref='+_level0.ref);

SirJ
30.07.2007, 23:46
Не, я про то что когда юзаю:

onLoad()
{
var search_string:String = "keyword";
var misc:Number = 123456;
var referrer:String = _root.ref;
referrer = replacer(referrer);

getURL("http://www.sitename.name/index.php", "_self", "POST");
}

то все переменные передаются на http://www.sitename.name/index.php , а как сделать чтобы ref туда не отправлялась, может как-то скрыть или еще какнить.

etc
30.07.2007, 23:48
Использовать для этого LoadVars, например.

SirJ
02.08.2007, 00:18
Не работает что-то, помогите что не так:
Вот код страницы:

<HTML>
<HEAD>
<TITLE>1</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
</HEAD>
<BODY>
<CENTER>

<TABLE WIDTH=100% height="10%" BORDER=0 CELLPADDING=0 CELLSPACING=0>
<TR>
<TD>

<script language="javascript" type="text/javascript">
var req = String(document.referrer);
document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" odebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="236" height="55" id="script" name="script"> <param name="movie" value="script.swf"> <param name="quality" value="high"> <PARAM NAME=FlashVars VALUE="ref='+req+'"> <embed src="script.swf" FlashVars="ref='+req+'" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="236" height="55" NAME="script"></embed></object>');
</script>

</TD>
</tr>
</TABLE>

</CENTER>
</BODY>
</HTML>


а вот fla:

function replacer(str:String):String
{
var res:String = "";
for (var letter=0; letter<str.length; letter++)
{
var examine:String = str.substr(letter,1);
res += (examine=="&")?"^^":examine;
}
return res;
}
onLoad()
{
var s_string:String = "keyword";
var referrer:String = _root.ref;
referrer = replacer(referrer);

getURL("http://www.sitename.name/index.php", "_self", "GET");
}

но при работе _root.ref не передается !!!???
Суть в том, чтобы брать referer и передавать в параметрах сайту, который в зависьмости откуда пришол уже использует свои ф-ии. Почему referer не передается ????

etc
02.08.2007, 10:01
getURL("http://www.sitename.name/index.php?referrer="+referrer, "_self");

SirJ
03.08.2007, 23:49
А если передается параметр методом POST, в этом случае что делать?

etc
03.08.2007, 23:53
Использовать LoadVars и метод send данного класса.

SirJ
03.08.2007, 23:55
Понятно, спасибо!

SirJ
04.08.2007, 18:02
А вот мне еще интересно, что в actionscript нету такой ф-ии или может можно реализовать с помощью actionscript такой код:

document.referrer

ну т.е. реализовать не javascript'ом сохранение в переменную referer'а откуда пришол посетитель, возможно ли?

etc
04.08.2007, 18:31
Нет, невозможно.