2015-05-28 10 views
5

Attualmente sono disponibili 4 diversi javascript per il monitoraggio degli annunci. Sembrano qualcosa di simile:È necessario il Javascript per modificare un tasto del tracker dell'annuncio in base al nome del dominio secondario

<script type='text/javascript'> var TrackerKey = 'keyabc123'; var url = 'http://website.com/jscode.js'; var script = document.createElement('script'); script.setAttribute('src', url); script.setAttribute('type', 'text/javascript'); document.body.appendChild(script);</script> 

voglio combinare tutte 4 e semplicemente avere lo swap chiave inseguitore fuori basato fuori il nome di sottodominio sono su.

Finora sono riuscito a capire che avrei usato window.location.hostname per trovare il dominio. E probabilmente utilizzerei una istruzione switch o un approccio/else.

Non ho ancora esperienza sufficiente per sapere come passare le informazioni relative al dominio come variabile all'istruzione switch e quindi utilizzarlo per aggiornare la variabile chiave del tracker.

suppongo che potrebbe essere simile alla seguente ...

<script type='text/javascript'> 

var domain = window.location.hostname; 

var TrackerKey; 
switch (???) { 
    case 0: 
     sub.domain1.com = "keyabc123"; 
     break; 
    case 1: 
     sub.domain2.com = "keydef456"; 
     break; 
    case 2: 
     sub.domain3.com = "keyghi789"; 
     break; 
    case 3: 
     sub.domain4.com = "keyjkl012"; 
     break; 
} 

var url = 'http://website.com/jscode.js'; var script = document.createElement('script'); script.setAttribute('src', url); script.setAttribute('type', 'text/javascript'); document.body.appendChild(script);</script> 

Am I a distanza sulla strada giusta?

Mi scuso, questa è la mia prima pugnalata a qualcosa che va oltre le basi.

+0

Il tuo caso dovrebbe anche riflettere il nome host che corrisponde, ad esempio, 'case 'www.yahoo.com': ... break; case 'videos.yahoo.com': ... break; ' –

+0

Come appaiono i tuoi sottodomini nell'URL e le loro chiavi? – MaxZoom

risposta

3

Sei vicino:

var domain = window.location.hostname; 

var TrackerKey; 
switch (domain) { 
    case "sub.domain1.com": 
     TrackerKey = "keyabc123"; 
     break; 
    case "sub.domain2.com": 
     TrackerKey = "keydef456"; 
     break; 
    case "sub.domain3.com": 
     TrackerKey = "keyghi789"; 
     break; 
    case "sub.domain4.com": 
     TrackerKey = "keyjkl012"; 
     break; 
} 

anche per convenzione in Javascript, i nomi delle variabili e la funzione sono caso cammello a partire da un carattere minuscolo, e le classi sono camelCase inizia con un carattere di capitale.

+0

Grazie molte signore. Risposta pallottola d'argento. Ho fatto un piccolo document.getElementById ("test"). InnerHTML = TrackerKey; per testare e restituisce valori come dovrebbe. Fino al server va più test, ma penso che funzionerà bene. – Chirpie

1

var subdomain = window.location.hostname.match(/(http:\/\/)?(([^.]+)\.)?domain\.com/)[3]

Change 'dominio' sopra per il tuo dominio e quindi utilizzare

var TrackerKey; 
switch(subdomain) { 
    case 'abc': //abc.domain.com 
     TrackerKey = 'abc123'; 
     break; 
} 

e poi fare il consueto inserto script.

Regex ref: Regex to extract subdomain from URL?

0

credo che questo dovrebbe farlo:

function trackerKey(url){ 
    var d = url.replace(/^((ht|f)tps?\:\/\/)?(www\.)?([^.]+).+$/i, '$4').toLowerCase(); 
    switch(d){ 
    case 'vancouver': 
     return 'someKey1'; 
    case 'portland': 
     return 'someKey2'; 
    case 'seattle': 
     return 'someKey3'; 
    case 'losangeles': 
     return 'someKey4'; 
    default: 
     return 'someKey'; 
    } 
} 
console.log(trackerKey(location)); 

Se si esegue questo codice seattle.craigslist.org vedresti someKey3 nella tua console. Allo stesso modo, vancouver.craigslist.ca ti darebbe someKey1. Certo, dovresti lavorare per Craigslist per eseguire il codice sopra. Questa è solo un'illustrazione. A proposito, di solito troverei inutile restituire una chiave o fare una chiave in base alle informazioni note sul lato client. Dovresti gestire la crittografia Sever Side. Si noti che non è necessario digitare window. in quanto è implicito.

Problemi correlati