您好我正在嘗試從java調用.js文件中的函數。GWT:從Java調用JavaScript函數
在我的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()')
如果你在JS控制檯中調用h8(),會發生什麼?我想你正在做,但是你能檢查你是否在你的入口點調用了test()方法嗎? – 2014-12-02 06:43:46
test()是從java調用的,因爲如果我爲簡單警報(「hey」)更改$ wnd.h8(),它會執行警報。 – yafrack 2014-12-02 16:59:32
你沒有回答我的第一個問題,h8是否在開發控制檯工作。我想你正在其他範圍內定義。 – 2014-12-02 17:41:49