2011-04-14 30 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