2016-04-09 111 views
1

好吧所以这也许是不可能的,但我认为这是,我完全是新的,所以什么iv'e尝试可能显然不工作,但我当时不知道。我的网站移动版响应式,没有单独的网页用于移动网站,因此将代码单独放入页面也无法使用。基于屏幕大小禁用JavaScript

iv'e尝试:

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

,没有工作。 Iv'e在这里

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 
} 

但是在哪儿见过这个代码,我不知道我怎么会放adfly代码到它。

编辑:

感谢那些谁回答,iv'e得到它的Praveen库马尔回答的工作,而古怪它仍然在桌面上加载广告,无论该决议的它工作完美的在手机上... Siguza我我会提前给你,以便将来参考。我会重新编辑...

编辑II:

以供将来参考,Siguza的方法也适用,所以如果在这个任何人绊倒,那么你可以把你在谁的使用PIC。此外,Praveen Kumar方法也适用于最短的广告,因为任何可能使用它们而非adfly的人都是我使用的。

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

回答

1

可能是黑客工作。如果,如果你有一个有效的adfly_id这只适用,那么这样做:

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

这可能会失败,您要初始化adfly东西。

但要做到这一点,正确的方法是:

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

PS:这里的require()功能是一个伪功能将包括并激活JavaScript文件。该代码的样本是:

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

刚刚测试了这一点,并得到了错误(铬开发工具)未捕获的安全错误:阻止与外国来源访问框架与原产地“网站”。协议,域名和端口必须匹配 –

+0

@PaulSmith您是否试图......为我工作。尝试使用CDN或代理。 –

+1

它确实在我的工作只是一个问题,我仍然得到错误,广告出现,但JavaScript仍然在720以上的屏幕上创建广告 –

2

替换此行:

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

与此:

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

这将只需创建一个<script>标签,其src属性设置为https://cdn.adf.ly/js/display.js ,并将其添加到文档的<head>标记中。
只用JavaScript而不是纯HTML。

请注意,我在这里依赖于HTML 5,但您的问题也是如此(<script><style>不需要type属性)。

编辑:

这种做法似乎无法在使用脚本document.write(其中,国际海事组织,是不好的做法)。
您可以解决此通过使用document.write自己:

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

请注意,您必须字符串中分裂</script>标签,否则将关闭周围的脚本标签,导致一个语法错误。

+0

Iv'e只是试过这个,并没有工作,我得到错误(使用开发工具chrome) 无法在'文档'上执行'写入':除非明确打开,否则无法从异步加载的外部脚本写入文档。 –

+0

@PaulSmith在我的答案中添加了解决方法。 – Siguza

相关问题