use*_*883 5 javascript java gwt
我想在java源代码中使用javascript库.我读到了它,我读到了,我应该使用它ScriptInjector.这个类有2个内部类:ScriptInjector.FromString和ScriptInjector.FromUrl.我想从本地文件加载javascript库,所以我应该使用string.怎么做?
ScriptInjector.fromString("myLibrary.js");
Run Code Online (Sandbox Code Playgroud)
不起作用.在哪里添加库?
1)fromUrl- 创建script具有指定src属性的标记并将其附加到页面.例如
ScriptInjector.fromUrl("http://example.com/my-script.js").inject();
Run Code Online (Sandbox Code Playgroud)
将简单地产生:
<script type="text/javascript" src="http://example.com/my-script.js" />
Run Code Online (Sandbox Code Playgroud)
您可以在网站上托管您的文件,并根据需要注入每个文件
2)fromString- script使用脚本的指定主体创建标记,因此:ScriptInjector.fromString("alert('Injected!')").inject(); 会给
<script type="text/javascript">
alert('Injected!')
</script>
Run Code Online (Sandbox Code Playgroud)
在这种情况下,JS代码是已编译的GWT代码的一部分,浏览器不需要使用单独的请求加载它.我认为可以将原生JS文件包含到编译输出中TextResource.所以你需要遵循:
定义资源
public interface JsResources extends ClientBundle {
final JsResources INSTANCE = GWT.create(JsResources.class);
@Source("first.js")
TextResource firstScript();
@Source("second.js")
TextResource secondScript();
}
Run Code Online (Sandbox Code Playgroud)
注入所需的脚本
ScriptInjector.fromString(JsResources.INSTANCE.firstScript().getText()).inject();
Run Code Online (Sandbox Code Playgroud)
要使用,.fromString()您必须将 JS 加载到字符串中并传递它。
如果您需要使用加载脚本,则.fromUrl()必须将其放在可访问“Internet”的地方,因为inject()最终会在
private static native void nativeSetSrc(JavaScriptObject element, String url) /*-{
element.src = url;
}-*/;
Run Code Online (Sandbox Code Playgroud)
(看这里)
因此:提取或以其他方式将脚本公开给您的网络服务器。
干杯,
| 归档时间: |
|
| 查看次数: |
3086 次 |
| 最近记录: |