2016-04-09 18 views
1

Tamam, bu belki de mümkün değil ama bence tamamen yeni, bu yüzden iv'i denedim açıkça işe yaramayabilir ama o zamanlar bilmiyordum. Sitelerim, mobil sitelere yönelik ayrı bir web sayfası olmadan mobil uyumlu olup, kodu ayrı bir sayfaya ayırmak da işe yaramaz.Ekran boyutuna bağlı olarak javascript'i devre dışı bırakın

iv'e çalıştı: işe yaramadı Hangi

<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> 

. Burada

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 
} 

Ama bir yerde bu kodu görülen Iv'e i içine adfly kodu koymak nasıl bilmiyorum.

DÜZENLEME: cevapladı olanlara

sayesinde iv'e hala bakılmaksızın kararın masaüstünde reklamları yükler esrarlı ederken ... mobil cihazlarda Siguza i mükemmel çalışır, Praveen Kumar cevap çalıştı got it Seninkini vereceksin, böylece insanlar gelecekteki referans için bilecekler. ve i ... tekrar

DÜZENLEME II düzenlemek edeceğiz: Bu üzerine başkasının sendeler ardından kullanmak kimin üzerinde pic alabilir eğer İleride

, Siguza yöntemi de o kadar çalışır. Ayrıca Praveen Kumar yöntemi de, aşağıda kullandığım şeyden ziyade onları kullanabilecek herkes için en kısa reklamlarla çalışıyor.

<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> 

cevap

1

Kesmek işi olabilir. Eğer geçerli bir adfly_id varsa bu sadece çalışırsa, o zaman bunu:

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; 
} 

Bu

sen başlatmak çalıştığınız adfly şeyler başarısız olabilir.

Ancak bunu yapmak için doğru yolu:

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

ps: Burada require() fonksiyonu içerir ve JavaScript dosyası aktive edecek bir sözde fonksiyonudur. Bu kodların bir örneği olacaktır: Bununla

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

:

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

Sadece bunu test ettik ve hatayı (chrome dev araçları) yakalanmamış güvenlik hatası aldım: yabancı kökenli menşei "site" olan çerçeveye erişmekten engellendi. Protokol, etki alanları ve bağlantı noktaları eşleşmelidir –

+0

@PaulSmith Çalışmaya mı çalışıyorsunuz? Benim için çalıştı. CDN veya proxy kullanmayı deneyin. –

+1

Sadece bir sorun işim bitmedi, hala hatayı alıyorum ve reklamlar hala javascript görüntüler oluşturuyor hala 720 –

2

bu satırı değiştirin

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

Bu sadece bir <script> etiketi yaratacak https://cdn.adf.ly/js/display.js onun src özelliğini ayarlamak ve belgenizin <head> etiketine ekleyin.
Sadece düz HTML yerine JavaScript'de.

Burada HTML 5'e güvendiğimi unutmayın, ancak (<script> ve type özniteliğine gerek duymayan <style>) sorunuzdasınız.

Düzenleme:

Bu yaklaşım kullanmak komut başarısız görünüyor document.write (ki, IMO, kötü bir uygulamadır).Eğer zorunluluk dizesinde </script> etiketi bölmek

<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> 

Not ya da bir yazım hatası neden çevreleyen komut dosyası etiketi kapanacak:
Kendini document.write kullanarak bu çalışabilirsiniz.

+0

Iv'e daha küçük ekranlarda reklamlar yarattı sadece bunu denedim ve çalışmıyor hata (dev araçlar kromu kullanılarak) 'Belge' üzerinde 'yazma' yürütülemedi: Açık bir şekilde açılmadıysa, zaman uyumsuz olarak yüklenmiş bir dış komut dosyasından bir belgeye yazmak mümkün değildir. –

+0

@PaulSmith Cevabım için bir geçici çözüm ekledik. – Siguza

İlgili konular