我想在Java源代码中使用javascript库。我读了一些东西,然后读了我应该使用ScriptInjector
。该类有2个内部类:ScriptInjector.FromString
和ScriptInjector.FromUrl
。我想从本地文件加载javascript库,所以我应该使用from字符串。怎么做?
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
-使用脚本的指定正文创建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();