java - GWT 中 ScriptInjector 的使用

标签 java javascript gwt

我想在 java 源代码中使用 javascript 库。我读了一些关于它的东西,我读到,我应该使用 ScriptInjector。该类有 2 个内部类:ScriptInjector.FromStringScriptInjector.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/

相关文章:

java - 如何为 WildFly 服务器设置默认错误页面?

java - 有人可以帮助我理解调用 Intent 来选择文件吗?

javascript - 防止大型菜单项在悬停时自动隐藏

javascript - 两个绝对 Div 顶部和底部

javascript - AngularJS |在加载之前处理路由

gwt - 我们可以在 GWT 开发模式下运行 selenium 测试吗?

java - 使用唯一键提取关联的 JSON 数据

java - 无法将 Spring Batch MongoItemReader 上的属性的 Query 类型的值转换为所需类型 'java.lang.String'

java - GXT号码字段自动计算

java - 如果我的类在 Java 中实现了可比性,我是否需要 equals 和 Hashcode 方法?