突发奇想,搞定innerHTML动态导入JS! Unknown 2011/06/25

| |

今天突发奇想,搞定innerHTML动态导入JS。

早上醒来,就想优化一下ggad,如果有长条GGAD,就不准备显示框状GGAD。

其实我目前一直是做到显示与不显示。我想优化成载入与不载入。我猜想这个和AD的显示率会有些关系,影响到最终的收益。

如果想做到载入与不载入,要么在PHP输出前就决定要显示哪种广告。这个很不方便。因为我当前是依赖与对内容的判断,选择放哪种广告。看来PHP是帮不了忙了。

接下来就是靠JS了。首先得不载入,仅在需要时载入。我用到了encodeURIComponent函数,对script转换成字串,仅在需要时用decodeURIComponent进行还原后载入。

本以为做到这一步就成功了。结果郁闷地发现innerHTML是导入了,但竟然还是不载入。在网上找了好久,发现有同样郁闷的人,原因是innerHTML只载入静态的内容,不会加载动态的JS(不会再次与服务器联系)。

最终看到高人提醒用DIV.appendChild来强制加载新对象实现,这样会强制再次与服务器联系。

试下来果然成功了!看来将来有希望加载各种各样的广告,大大小小不一,框的条的都可以!

ps.还看到另一种很复杂的方法,看得我都想放弃了,还好我不轻易放弃,让我找到好方法了。


2011-6-26 丢人啊!我发觉昨天并没有成功,原来我把index.php覆盖错了。弄正确后,发觉script字符串没问题,但动态导入外部JS的那个appendChild出问题了。查了好久,网上也有人有这个问题,我会对这个问题继续研究的,直至解决问题!

2011-6-28 在试了两天后,终于发现ggad的document.write造成了这个问题无法解决,除非重写document.write函数。我也不纠结了,还是改回原来的方式吧。就当是学习了document.createElement("script")吧。

请给这篇日志评个分吧~!

本文评分: 5/10 (44 votes)    提示:您还未对本文评分,您可以进行评分并发表您的意见!

加入收藏!

spyrise Email Homepage IP
2011/06/26 08:35
还在还担心一个问题,这样载入的ggad js,会不会找不到referer,如果找不到,ggad会没办法找到匹配的内容,换句话说,他不知道ggad出现在了哪个网页上。这也是为什么ggad不推荐放在iframe中的原因。

找不到匹配内容的话,出来的广告价格都很低的。那就和初衷背道而驰了。
分页: 1/1 第一页 1 最后页
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [注册]