2011-04-14 29 views
0

我需要把下面的脚本UiBinder的整合DIV中:在UiBinder的(脚本素材集)逃逸与号

<!-- Begin: adBrite, Generated: 2011-04-14 8:40:27 --> 
<script type="text/javascript"> 
var AdBrite_Title_Color = '66B5FF'; 
var AdBrite_Text_Color = '000000'; 
var AdBrite_Background_Color = 'FFFFFF'; 
var AdBrite_Border_Color = 'CCCCCC'; 
var AdBrite_URL_Color = '008000'; 
try{var AdBrite_Iframe=window.top!=window.self?2:1;var AdBrite_Referrer=document.referrer==''?document.location:document.referrer;AdBrite_Referrer=encodeURIComponent(AdBrite_Referrer);}catch(e){var AdBrite_Iframe='';var AdBrite_Referrer='';} 
</script> 
<span style="white-space:nowrap;"><script type="text/javascript">document.write(String.fromCharCode(60,83,67,82,73,80,84));document.write(' src="http://ads.adbrite.com/mb/text_group.php?sid=123&zs=123&ifr='+AdBrite_Iframe+'&ref='+AdBrite_Referrer+'" type="text/javascript">');document.write(String.fromCharCode(60,47,83,67,82,73,80,84,62));</script> 
<a target="_top" href="http://www.adbrite.com/mb/commerce/purchase_form.php?opid=123&afsid=1"><img src="http://files.adbrite.com/mb/images/adbrite-your-ad-here-leaderboard.gif" style="background-color:#CCCCCC;border:none;padding:0;margin:0;" alt="Your Ad Here" width="14" height="90" border="0" /></a></span> 
<!-- End: adBrite --> 

GWT编译器抱怨的&符号,所以我把它们改成&amp;

我也照顾到申报我的文件的顶部以下,这样的符号实体能够得到妥善解决:

<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> 

这至少让我编译代码,但由此产生的页面使用&amp;而不是&进行渲染,这当然会破坏脚本。

如何正确地跳过&符号以便脚本正常运行?有没有办法在我的加载器html/jsp中声明这个脚本,并将它渲染为我选择的div?我无法在Adbrite的网站上找到很多文档。

最后,Adbrite是否真的有必要试图隐藏脚本来自远程站点的事实,并且这种说法是无意义的?据推测,这是正在做是为了防止某种XSS过滤从踢。

感谢

回答

0

把HTML注释之间的JavaScript代码。 用&amp;代替&

下面是更正代码:

<!-- Begin: adBrite, Generated: 2011-04-14 8:40:27 --> 
     <script type="text/javascript"><!-- 
      var AdBrite_Title_Color = '66B5FF'; 
      var AdBrite_Text_Color = '000000'; 
      var AdBrite_Background_Color = 'FFFFFF'; 
      var AdBrite_Border_Color = 'CCCCCC'; 
      var AdBrite_URL_Color = '008000'; 
      try{var AdBrite_Iframe=window.top!=window.self?2:1;var 
      AdBrite_Referrer=document.referrer==''?document.location:document.referrer;AdBrite_Referrer=encodeURIComponent(AdBrite_Referrer);}catch(e){var 
      AdBrite_Iframe='';var AdBrite_Referrer='';} 
    --></script> 

<span style="white-space:nowrap;"> 
<script type="text/javascript"><!-- document.write(String.fromCharCode(60,83,67,82,73,80,84));document.write(' src="http://ads.adbrite.com/mb/text_group.php?sid=123&zs=123&ifr='+AdBrite_Iframe+'&ref='+AdBrite_Referrer+'" type="text/javascript">');document.write(String.fromCharCode(60,47,83,67,82,73,80,84,62)); --></script> 
<a target="_top" href="http://www.adbrite.com/mb/commerce/purchase_form.php?opid=123&amp;afsid=1"><img src="http://files.adbrite.com/mb/images/adbrite-your-ad-here-leaderboard.gif" style="background-color:#CCCCCC;border:none;padding:0;margin:0;" alt="Your Ad Here" width="14" height="90" border="0" /></a></span> 
     <!-- End: adBrite --> 
+0

嗯,这似乎并没有帮助。查看生成的DOM,我得到一个空的脚本标记,然后URL中的图像的锚点就是\ u0026。你意识到这是GWT中的UIBinder,不仅仅是纯HTML,对吧?对不起,如果我不清楚我的问题。 – 2011-04-14 21:15:42

+0

是的,我在GWT中使用UIBinder进行了测试。它工作得很好。我认为它可能与正在使用的enconding charset有关。我使用UTF-8编码对文件和HTML标头进行了这项测试: '' 试试。 – 2011-04-15 10:59:07

+0

DOM中的脚本标记没有问题。该脚本将运行良好。 您在项目文件和GWT项目的HTML标题中使用哪种编码字符集? – 2011-04-15 11:05:59