如何避免在GWT cache.js文件中生成document.write

时间:2012-11-27 09:22:33

标签: javascript gwt client-side

我正在使用Gwt 2.4。在编译我的项目后,我得到了mymodle.chache.js中最常用的一些document.write行。

所以我想知道在我的GWT代码中生成这些行的地方,并且发现了一些代码行,如

element.setInnerHtml("blah ..blah..");

doc.write("blah..blah ..");

所以我删除了这些代码行并再次编译,仍然获得了一些(ex:document.write(df+er+t))行。

有人建议找到从我的GWT中产生这些线的原因吗?

2 个答案:

答案 0 :(得分:3)

(假设您正在讨论*.nocache.js文件而不是*.cache.*文件,因为*.cache.*不包含对document.write的调用,除非您正在使用一个糟糕的第三方lib)

*.nocache.js文件由主链接器生成,因此其内容独立于您的代码。它包含对document.write()的各种调用:确定模块基本URL (作为最后的手段,当它无法从其他地方推断它时),注入从{{1引用的脚本和样式表文件,最后注入GWT应用程序代码本身(使用标准链接器,这将是*.gwt.xml,使用较新的<iframe>链接器,它将是xsiframe。<登记/> 如果您真的很担心它,可以通过扩展<script>CrossSiteIframeLinker链接器)并提供不同的代码片段来轻松定制。

提示:使用xsiframe进行编译,以使生成的代码可读。

答案 1 :(得分:1)

您不应该手动编辑/修改mymodle.cache.js。此文件从GWT Compiler再次生成。您试图通过手工编辑来解决什么问题?