我第一次尝试使用GWT的ScriptInjector,想知道为什么当我查看页面源代码时,为什么不能在页面的任何地方看到注入(inject)的脚本作为标签。我希望它会显示在页面标题中。
我正在使用一个简单的示例,该示例可以显示警报。我只是想知道为什么我不能在页面中看到它。另外,如果我在脚本中声明了一个JavaScript变量,则该变量在全局范围内似乎不可用。
ScriptInjector.fromString("window.alert('testing');")
.setWindow(ScriptInjector.TOP_WINDOW)
.inject();
最佳答案
ScriptInjector
的工作原理是将您的js代码段注入(inject)顶层窗口对象,并且默认情况下,在评估完之后立即将其删除(如果使用fromString()
;对于fromUrl()
,默认情况下不会删除该元素)。这就是为什么您看不到它,但是它实际上会执行的原因。
如果要保留注入(inject)的脚本元素,只需在构建器setRemoveTag(false)
对象上使用FromString
,即:
ScriptInjector.fromString("window.alert('testing');")
.setRemoveTag(false)
.setWindow(ScriptInjector.TOP_WINDOW)
.inject();