2011-11-09 8 views
9

Mam kilka sieci reklamowych, które były w stanie zintegrować URL zwrotny (wymagany, gdy płatne wyświetlenie reklamy nie jest dostępne), ale jedna sieć reklamowa akceptuje tylko tag skryptu przebiegu zwrotnego, którego nie mam.Jak utworzyć tag przebiegu zwrotnego z adresu URL?

Skrypt przebiegu zwrotnego musi załadować do siebie zawartość adresu URL (obraz 728x90 lub baner flash) (musi również wykonać skrypt JavaScript, który ładuje). Czy ktoś może mi pomóc w skonstruowaniu tagu skryptu przebiegu zwrotnego?

Próbowałem to:

<SCRIPT language="Javascript"> 

// loads within itself, in the 728x90 banner space 

document.write("<SCR"+"IPT language=\'Javascript\' src=\'http://www.mydomain.com/passback.php\'></SCR"+"IPT>"); 

</SCRIPT> 

Ale dostał błędów skryptu. Jakieś pomysły?

+1

@Tom Jak wygląda plik 'passback.js'? –

+0

Jakie błędy dostałeś? –

+0

Twój kod (część, którą pokazałeś) jest w porządku. Jest to skrypt wskazany w atrybucie * src *, który powoduje problemy - należy się nim dzielić? Ponadto, po pytaniu Jana - jakie błędy skryptowe otrzymujesz? – WTK

Odpowiedz

6

Po prostu pomysł. Co daje, jeśli spróbujesz tego?

<SCRIPT language="JavaScript" type="text/javascript"> 

var script = document.createElement("script"); 
script.type = "text/javascript"; // This is for HTML 4.01 validation 
script.src = "http://www.mydomain.com/passback.php"; 
document.getElementsByTagName("head")[0].appendChild(script); 

</SCRIPT> 
+0

Wystąpił błąd skryptu. "Błąd: brak, przed stwierdzeniem" – Tom

+2

nie otrzymujesz błędu z powyższego kodu, jest on gdzie indziej – alessioalex

+0

Zgadzam się z @alessioalex, ten błąd jest prawdopodobnie w twoim skrypcie. Spróbuj sprawdzić poprawność swojego javascript w czymś takim jak jslint, aby spróbować znaleźć brakujące średniki i nawiasy klamrowe. Podniosłem również powyższą odpowiedź, ponieważ jest to dobra technika. – BenSwayne

0

Skrypt już przewidziane jest zbliżony do tego, który zawsze wykorzystać do tego:

var js = document.createElement("script"); 
js.type = "text/javascript"; 
js.src = "//www.mydomain.com/passback.php"; 
document.getElementsByTagName('head')[0].appendChild(js); 

Jedyną rzeczą, która jest inna jest to, że schemat URL nie jest określona więc jeśli uruchomiony na http serwera, wtedy zostanie wywołany adres URL http, a jeśli uruchomisz na https, zostanie wywołany https - ich połączenie spowoduje, że skrypty nie zostaną załadowane.

Przy Twoim błędzie skryptu sugerowałbym korzystanie z Chrome i narzędzi programistycznych - pozwoliłoby to zobaczyć dokładnie, która linia daje ten błąd.

+1

+1 Zwłaszcza, że ​​nie ma 'http: || https:'. Dlaczego ludzie to dodają? – fncomp

+0

@Josh określając schemat URL jest "prawidłowy" sposób z perspektywy standardów.Adres URL bez schematu jest raczej hackem, który wykorzystuje fakt, że wszystkie przeglądarki powracają do aktualnego schematu strony, gdy nie ma pewności, czego używać (niedawne odkrycie). Powiedziałem, że używam i popieram adresy URL pozbawione schematu, ale także potwierdzam, skąd pochodzą te standardy. Teraz, gdy adresy URL pozbawione schematu są tak powszechne i użyteczne, mogą stać się standardem. Ale pierwotną intencją było, aby wszystkie adresy URL miały schemat. Lista schematów jest znacznie dłuższa niż tylko http/https, a adresy URL mogą być używane poza siecią. – BenSwayne

+0

Jestem świadomy innych schematów, ale to pytanie jest w przeglądarce, więc czy ktoś podda się błędom spowodowanym przez dostęp do 'http' ze schematu' https'? – fncomp

0

Następująca funkcja ładuje inny dokument do treści dokumentu. Adres URL nowego dokumentu powinien znajdować się w tej samej domenie, co w Twoim przypadku: http://www.mydomain.com/.

Należy zapisać następujący skrypt jako plik .js i umieścić go w miejscu, w którym ma zostać umieszczona reklama.

function load(url) { 
    var req = null; 

    if (window.XMLHttpRequest) { 
     req = new window.XMLHttpRequest(); 
    } 
    else if (window.ActiveXObject) { //fallback 
     try { 
      req = new ActiveXObject("Msxml2.XMLHTTP"); 
     } catch (e) { 
      try { 
       req = new ActiveXObject("Microsoft.XMLHTTP"); 
      } catch (e) { } 
     } 
    } 

    if (req) { 
     req.open("GET", url, false); 
     req.send(null); 
     return req.responseText; 
    } 
} 

document.write(load("http://www.mydomain.com/passback.php")); 
Powiązane problemy