【发布时间】:2013-12-19 04:42:03
【问题描述】:
我正在尝试一项新的广告服务,据我所知,他们不提供加载广告的功能界面。我们希望根据用户的屏幕尺寸显示不同的广告尺寸,而此服务要求您为每种尺寸加载不同的.js URL。
我最初尝试写作:
<script type="text/javascript"><!--
var dochead = document.getElementsByTagName('head')[0];
var newscript = document.createElement('script');
newscript.type = "text/javascript";
newscript.src = '//ads-by.madadsmedia.com/tags/22430/9194/async/' + (screen.width >= 1360 ? '160' : '120') + 'x600.js';
dochead.appendChild(newscript);
//-->
</script>
但我只是得到一个空白页。我查看了 Chrome 开发人员工具,它似乎可以正确加载他们的脚本。他们的脚本从 Google 加载其他脚本,并且它们也出现在 DOM 中。但是没有广告图片。
当我将脚本更改为:
<script language="JavaScript" type="text/javascript">
var prot = document.location.protocol;
var adwidth = (screen.width >= 1360 ? '160' : '120');
document.write('<script language="JavaScript" type="text/javascript"'); document.write('src="'+prot+'//ads-by.madadsmedia.com/tags/22430/9194/async/'+adwidth+'x600.js">'); document.write('<\/scr' + 'ipt>');
</script>
它工作正常。我一般不喜欢使用document.write,我想知道为什么在这种情况下需要它?广告服务的脚本大量使用document.write,这是为什么呢?
【问题讨论】:
-
很抱歉这么晚才回答,但我认为这是注意到您在第一行有一个 Javascript 语法错误。你应该有
//<!--,而不是<!--。 -
我们不再使用该广告服务,所以这没有实际意义。还是谢谢。
-
但是,我查看了我们当前的广告页面,它们的脚本相似。他们有
<script><!--//<![CDATA[...//]]>--></script>
标签: javascript ads document.write