2016-04-09 14 views
1

Okay, das ist vielleicht nicht möglich, aber ich denke es ist, ich bin komplett neu, also was iv'e versuchte konnte offensichtlich nicht funktionieren, aber ich wusste es zu der Zeit nicht. Meine Websites sind reaktionsschnell und es gibt keine separate Webseite für mobile Websites. Daher funktioniert auch das separate Einfügen des Codes in eine Seite nicht.Javascript auf Basis der Bildschirmgröße deaktivieren

iv'e versucht:

<style> 
@media screen and (max-width: 720px) { 
#div { 
display:none; 
    } 
} 
</style> 

<div id="div"> 
<script type="text/javascript"> 
    var adfly_id = ID; 
    var popunder_frequency_delay = 0; 
</script> 
<script src="https://cdn.adf.ly/js/display.js"></script> 
</div> 

Welche nicht funktioniert hat. Iv'e diesen Code irgendwo

hier gesehen
if(screen.width < 720) { 
    // do any 720 width stuff here, or simply do nothing 
    return; 
} else { 
    // do all your cool stuff here for larger screens 
} 

Aber ich weiß nicht, wie ich den adfly Code in sie gesetzt würde.

EDIT:

Dank denen, die antwortete, bekam iv'e es Praveen Kumar Antwort gearbeitet, während weirdly es immer noch die Anzeigen auf dem Desktop unabhängig von der Auflösung lädt es funktioniert perfekt auf dem Handy ... Siguza i Ich werde es Ihnen geben, damit die Leute wissen, dass sie sich in Zukunft zurechtfinden. und ich werde wieder bearbeiten ...

EDIT II:

Für die Zukunft, Siguza Methode funktioniert auch dann, wenn jemand stolpert diese dann können Sie Ihr Bild auf nehmen, die zu bedienen ist. Auch Praveen Kumar Methode arbeitet mit kürzesten Anzeigen für jeden, der sie anstelle von adfly verwenden könnte, was ich benutze.

<script type="text/javascript"> 
if(screen.width < 720) { 
    var adfly_id = null; 
    var popunder_frequency_delay = null; 
} else { 
    // do all your cool stuff here for larger screens 
    var adfly_id = ID; 
    var popunder_frequency_delay = 0; 
} 
     </script> 
<script src="https://cdn.adf.ly/js/display.js"></script> 
<script type="text/javascript"> 
if(screen.width < 720) { 
//screens bigger than 720 
} else { 
//shortest advertisement code       
} 
</script> 

Antwort

1

Könnte ein Hack-Job sein. Wenn dies funktioniert nur, wenn Sie eine gültige adfly_id haben, dann tun:

if(screen.width < 720) { 
    var adfly_id = null; 
    var popunder_frequency_delay = null; 
} else { 
    // do all your cool stuff here for larger screens 
    var adfly_id = ID; 
    var popunder_frequency_delay = 0; 
} 

Dies könnte die adfly Sachen scheitern Sie initialisieren möchten.

Aber der richtige Weg, dies zu tun ist:

if(screen.width < 720) { 
    // Bye bye. 
} else { 
    // do all your cool stuff here for larger screens 
    require("awesome.js"); 
} 

ps: Die require() Funktion hier ist eine Pseudo-Funktion, und aktivieren Sie die JavaScript-Datei enthalten würde. Eine Probe dieser Code wäre:

function loadScript(url, callback) { 
    // Adding the script tag to the head as suggested before 
    var head = document.getElementsByTagName('head')[0]; 
    var script = document.createElement('script'); 
    script.type = 'text/javascript'; 
    script.src = url; 

    // Then bind the event to the callback function. 
    // There are several events for cross browser compatibility. 
    script.onreadystatechange = callback; 
    script.onload = callback; 

    // Fire the loading 
    head.appendChild(script); 
} 
+0

Nur getestet, und hat den Fehler (Chrome-Dev-Tools) uncaught Sicherheitsfehler: von mit fremdem Ursprung vom Zugriff auf Frame mit Ursprung "Website" blockiert. Protokoll, Domänen und Ports müssen übereinstimmen –

+0

@PaulSmith Versuchen Sie ... Es hat für mich funktioniert. Versuchen Sie es mit einem CDN oder einem Proxy. –

+1

Es funktionierte nur ein Problem an meinem Ende, ich bekomme immer noch den Fehler und die Anzeigen erscheinen aber das Javascript erstellt immer noch die Anzeigen auf Bildschirmen kleiner als 720 –

2

diese Zeile ersetzen:

<script src="https://cdn.adf.ly/js/display.js"></script> 

mit diesem:

<script> 
if(screen.width >= 720) { 
    document.head.appendChild(document.createElement('script')).src = 'https://cdn.adf.ly/js/display.js'; 
} 
</script> 

Dies wird einfach ein <script> Tag erstellen, legen Sie die src Attribut https://cdn.adf.ly/js/display.js und fügen Sie es zum Tag <head> Ihres Dokuments hinzu.
Nur in JavaScript anstelle von reinem HTML.

Beachten Sie, dass ich hier auf HTML 5 angewiesen bin, aber Sie sind auch in Ihrer Frage (<script> und <style> benötigen kein type Attribut).

Edit:

Dieser Ansatz erscheint auf Skripte fehlschlagen, die document.write verwenden (die, IMO, ist eine schlechte Praxis).
Sie können document.write selbst mit diesem Problem umgehen:

<script> 
/* you can put your adfly_id code right here */ 
if(screen.width >= 720) { 
    document.write('<script src="https://cdn.adf.ly/js/display.js"><'+'/script>'); 
} 
</script> 

Beachten Sie, dass must spalteten den </script>-Tag in der Zeichenfolge, oder es wird den umgebenden Skript-Tag, was zu einem Syntaxfehler schließen.

+0

Iv'e nur versucht dies und funktioniert nicht, ich bekomme die Fehler (unter Verwendung der Entwicklungstools chrome) Fehler beim Ausführen von 'Schreiben' in 'Dokument': Es ist nicht möglich, in ein Dokument von einem asynchron geladenen externen Skript zu schreiben, wenn es nicht explizit geöffnet wird. –

+0

@PaulSmith Eine Problemumgehung zu meiner Antwort hinzugefügt. – Siguza

Verwandte Themen