gpt4 book ai didi

java - GWT:从 Java 调用 javascript 函数

转载 作者:行者123 更新时间:2023-11-28 19:29:06 24 4
gpt4 key购买 nike

您好,我正在尝试从 java 调用 .js 文件中的函数。

在我的 Java 代码中,我有

@Override
public native void test()
/*-{
//JAVASCRIPT
$wnd.h8();
}-*/;

仅方法内的警报有效,但我无法调用我的函数之一。我尝试过 $wnd、$doc 但什么也没有。

假设我有一个包含以下内容的functions.js:

function h8(){
alert("hi");
}

在我的索引中,我有:

<!doctype html>
<html>
<head>

<title>GWT Test</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link href="styles.css" rel="stylesheet" type="text/css">
<script src="js/functions.js"></script>

</head>

<body>
<div align="center" id="embed-html"></div>
<script type="text/javascript" src="html/html.nocache.js"></script>
</body>

</html>

所以你看到我正在 html 中加载脚本文件,但我收到“未定义不是函数”错误。如果没有 $doc 或 $wnd,我会收到“找不到变量 h8”错误。

这是控制台错误:

GwtApplication: exception: (TypeError) 
line: 112978
column: 10
sourceURL: http://127.0.0.1:9876/html/52574FB8FF8725CA72DFF813B62FEE86.cache.js
__gwt$exception: <skipped>: undefined is not a function (evaluating '$wnd.h8()')
(TypeError)
line: 112978
column: 10
sourceURL: http://127.0.0.1:9876/html/52574FB8FF8725CA72DFF813B62FEE86.cache.js
__gwt$exception: <skipped>: undefined is not a function (evaluating '$wnd.h8()')

最佳答案

您应该定义窗口函数:

Window.h8 = function() {
alert("!!!");
};

并使用 $wnd 访问它。

private static native void callFunction() /*-{
$wnd.h8();
}-*/;

关于java - GWT:从 Java 调用 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27241328/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com