我想在 java 源代码中使用 javascript 库。我读了一些关于它的东西,我读到,我应该使用 ScriptInjector
。该类有 2 个内部类:ScriptInjector.FromString
和 ScriptInjector.FromUrl
。我想从本地文件加载 javascript 库,所以我应该使用 from string。怎么做?
ScriptInjector.fromString("myLibrary.js");
不起作用。在哪里添加库?
最佳答案
1) fromUrl
- 创建具有指定 src 属性的 script
标签并将其附加到页面。例如
ScriptInjector.fromUrl("http://example.com/my-script.js").inject();
只会产生:
<script type="text/javascript" src="http://example.com/my-script.js" />
您可以在网站上托管您的文件并按需注入(inject)每个文件
2) fromString
- 使用指定的脚本body 创建script
标签,因此:
ScriptInjector.fromString("alert('Injected!')").inject();
会给
<script type="text/javascript">
alert('Injected!')
</script>
在这种情况下,JS 代码是编译后的 GWT 代码的一部分,浏览器不需要通过单独的请求加载它。我认为可以使用 TextResource
将 native JS 文件包含到编译输出中。所以你需要以下内容:
定义资源
public interface JsResources extends ClientBundle {
final JsResources INSTANCE = GWT.create(JsResources.class);
@Source("first.js")
TextResource firstScript();
@Source("second.js")
TextResource secondScript();
}
注入(inject)所需的脚本
ScriptInjector.fromString(JsResources.INSTANCE.firstScript().getText()).inject();
关于java - GWT 中 ScriptInjector 的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24610727/