为什么我看不到使用GWT ScriptInjector注入的脚本?

pra*_*an1 5 gwt

我第一次尝试使用GWT的ScriptInjector,并且想知道为什么当我查看页面源时,我无法在页面的任何位置看到注入的脚本作为标记.我希望它出现在页面头部.

我正在使用一个简单的例子,它可以显示警报.我只是想知道为什么我不能在页面中注入它.此外,如果我在我的脚本中声明一个JavaScript变量,它似乎在全局范围内不可用.

ScriptInjector.fromString("window.alert('testing');")
.setWindow(ScriptInjector.TOP_WINDOW)
.inject();
Run Code Online (Sandbox Code Playgroud)

And*_*olo 7

ScriptInjector通过将js片段注入顶级窗口对象,默认情况下,在评估之后将其删除(如果使用fromString(); 默认情况下删除fromUrl()元素).这就是为什么你没有看到它,但它实际上执行.

如果要保留注入的脚本元素,只需setRemoveTag(false)在构建器FromString对象上使用,即:

ScriptInjector.fromString("window.alert('testing');")
  .setRemoveTag(false)
  .setWindow(ScriptInjector.TOP_WINDOW)
  .inject();
Run Code Online (Sandbox Code Playgroud)