2012-09-24 2 views
0

Я создаю несколько баннеров кампании swf, и я не использую скрипт действия очень часто, поэтому любая помощь экспертов будет большой благодарностью.Получить имя хоста с скриптом действий 2

Я поставляет свои баннеры на своем веб-сайте в качестве загрузок ресурсов. И учебники о том, как встраивать swf, который имеет некоторые javascript flashvars.

Эти переменные flash затем объединяются в ссылку кампании Google для изменения utm_source.

Это мой Javascript ...

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script> 
<script type="text/javascript"> 
    var flashvars = {}; 
    flashvars.campaignSource = window.location.hostname; 
    var params = {}; 
    params.loop = "true"; 
    params.quality = "best"; 
    params.wmode = "opaque"; 
    params.swliveconnect = "true"; 
    params.allowscriptaccess = "always"; 
    var attributes = {}; 
    swfobject.embedSWF("banner.swf", "banner_mpu", "300", "250", "9.0.0", false, flashvars, params, attributes); 
</script> 

и мой HTML ...

<div id="banner_mpu"> 
    <a href="http://www.adobe.com/go/getflashplayer"> 
    <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /> 
    </a> 
</div> 

Так выше JS прекрасно работает, однако, не все будут использовать мой учебник код и, вероятно, используйте собственные методы для внедрения swf-баннера на свой сайт.

Так что мне нужно немного назад вверх действие сценарий 2, чтобы получить текущее имя хоста в сценарий действия переменной

Это мой сценарий действий, который я до сих пор на моей кнопке (SWF) ...

on(release) { 

    function GetTheHostname() { 

     var RootFullUrl = _root._url; 
     txtFullUrl.text = RootFullUrl; 
     var lastSlashIndex:Number = RootFullUrl.lastIndexOf("/"); 
     var DriveIndex:Number = RootFullUrl.indexOf("|"); 

     if (DriveIndex>=0) { 
     baseUrl = RootFullUrl.substring(0, DriveIndex); 
     baseUrl += ":"; 

    } else { 

     baseUrl = ""; 

    } 

     baseUrl += RootFullUrl.substring(DriveIndex+1, lastSlashIndex+1); 
     txtBaseUrl.text = baseUrl; 
     return baseUrl; 

    } 

    var campaignSourceAS2:String= GetTheHostname(); 

    if (_root.campaignSource == undefined) { 

     getURL("http://www.mysite.co.uk/?utm_source=" + campaignSourceAS2 + "&utm_medium=MPU&utm_campaign=My%20Campaign%202012", "_blank"); 

    } else { 

     getURL("http://www.mysite.co.uk/?utm_source=" + _root.campaignSource + "&utm_medium=MPU&utm_campaign=My%20Campaign%202012", "_blank"); 

    } 

} 

Проблема с моим скриптом действия заключается в том, что он возвращает полный текущий URL.

Может ли одна просьба помочь мне адаптироваться функции GetTheHostname, чтобы получить имя хоста вместо BaseUrl


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

+0

код, кажется, прекрасно работать. Что такое _root.url и какой url вы ожидаете получить от вашего метода GetTheHostname? –

+0

Действительно код работает нормально. Но ActionScript извлекает полный базовый URL-адрес. Скажем, например, здесь живет веб-баннер. 'Http: // example.com/category/actionscript', и мой скрипт о нем вернет это.' Http://example.com/category/actionscript'. Я мог бы действительно сделать с функцией ActionText функции GetTheHostname(), чтобы вернуть то же значение, что и возвращаемый flashvar. Flashvar возвращает это. 'Example.com' Так что в основном javascript' window.location.hostname; ', но мне это нужно в скрипте действий. Я не думаю, что есть предварительная функция, которая делает это в actionscript 2. Спасибо – Joshc

+0

'GetTheHostname()' в настоящее время получает 'http: // www.example.com/category/actionscript', но я бы хотел' www. example.com' :-) – Joshc

ответ

1

В этом случае, я думаю, это было бы так просто, как снятие http: // с URL-адреса, а затем получить все, что осталось до первого/

Однострочный перевод с сайта http://www.example.com/category/actionscript на «www. example.com 'будет

var baseURL:String = _root._url.split("http://").join("").split("/")[0]; 

и заменить ваш метод полной

getURL("http://www.mysite.co.uk/?utm_source=" + (_root.campaignSource || _root._url.split("http://").join("").split("/")[0]) + "&utm_medium=MPU&utm_campaign=My%20Campaign%202012", "_blank"); 
+0

Хороший чувак - спасибо, что показал мне это. Хотя что происходит, если он находится на https: // - есть ли вообще найти первый // и пролил его оттуда? Цените свою помощь. – Joshc

+0

var baseURL: String = url.split ("//") [1] .split ("/") [0]; Это работает только в том случае, если в URL-адресе нет других двойных косой черты. –

+1

'.split (": // ") [1] .split ("/") [0];' работал как красота. Спасибо за вашу помощь. мистифицировать – Joshc

Смежные вопросы