如何在 DukeScript 中调试 JavaScript
How to debug JavaScript in DukeScript
使用 DukeScript 时可以调试 JavaScript 吗?
我试过添加 FirebugLite
<script type='text/javascript' src='http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js'></script>
它加载了,这很棒,但它没有 $root 模型的可见性。
另外不知道能不能加断点
部分,可以包含 Firebug精简版。参见示例 here。
我发现的一个问题是 Firebug 加载但没有模型的可见性,$root returns 未定义。
我试图通过在 main/resouces
下创建 Java 脚本资源 MyResource.js 来解决这个问题
MyResource = {
loadFirebug: function(){
if (!document.getElementById('FirebugLite')){
E = document['createElement' + 'NS'] && document.documentElement.namespaceURI;
E = E ? document['createElement' + 'NS'](E, 'script') : document['createElement']('script');
E['setAttribute']('id', 'FirebugLite');
E['setAttribute']('src', 'https://getfirebug.com/' + 'firebug-lite.js' + '#startOpened');
E['setAttribute']('FirebugLite', '4');(document['getElementsByTagName']('head')[0] || document['getElementsByTagName']('body')[0]).appendChild(E);
E = new Image;E['setAttribute']('src', 'https://getfirebug.com/' + '#startOpened');
}
},
someProperty: "someProperty"
};
然后我们创建一个对应的Javaclass来加载资源
@JavaScriptResource("MyResource.js")
public class MyResource {
@net.java.html.js.JavaScriptBody(
args = {}, body =
"MyResource.loadFirebug();"
)
public static native void loadFireBug();
}
现在在 onPageLoad() Java 方法中我们可以调用加载 FirebugLite
的 JavaScript 方法
/**
* Called when the page is ready.
*/
public static void onPageLoad() throws Exception {
d = new Data();
d.setMessage("Hello World from HTML and Java!");
d.applyBindings();
MyResource.loadFireBug();
}
现在当 Firebug 启动时,它至少有一个封闭资源的范围。
我们仍然无法添加断点,因为资源没有出现在文件下。也许 DukeScript 专家可以建议一种更好的处理方法。
注意 1:您可以使用 load Bootstrap,只需将其包含到带有脚本标记的页面中即可。参见
注意 2:不幸的是 FireBug Lite 似乎在 Bootstrap 版本 1.2 之后有一些问题。参见
注释 3: 关于如何从 javascript 上下文访问 DukeScript 模型
使用 DukeScript 时可以调试 JavaScript 吗? 我试过添加 FirebugLite
<script type='text/javascript' src='http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js'></script>
它加载了,这很棒,但它没有 $root 模型的可见性。 另外不知道能不能加断点
部分,可以包含 Firebug精简版。参见示例 here。 我发现的一个问题是 Firebug 加载但没有模型的可见性,$root returns 未定义。 我试图通过在 main/resouces
下创建 Java 脚本资源 MyResource.js 来解决这个问题MyResource = {
loadFirebug: function(){
if (!document.getElementById('FirebugLite')){
E = document['createElement' + 'NS'] && document.documentElement.namespaceURI;
E = E ? document['createElement' + 'NS'](E, 'script') : document['createElement']('script');
E['setAttribute']('id', 'FirebugLite');
E['setAttribute']('src', 'https://getfirebug.com/' + 'firebug-lite.js' + '#startOpened');
E['setAttribute']('FirebugLite', '4');(document['getElementsByTagName']('head')[0] || document['getElementsByTagName']('body')[0]).appendChild(E);
E = new Image;E['setAttribute']('src', 'https://getfirebug.com/' + '#startOpened');
}
},
someProperty: "someProperty"
};
然后我们创建一个对应的Javaclass来加载资源
@JavaScriptResource("MyResource.js")
public class MyResource {
@net.java.html.js.JavaScriptBody(
args = {}, body =
"MyResource.loadFirebug();"
)
public static native void loadFireBug();
}
现在在 onPageLoad() Java 方法中我们可以调用加载 FirebugLite
的 JavaScript 方法/**
* Called when the page is ready.
*/
public static void onPageLoad() throws Exception {
d = new Data();
d.setMessage("Hello World from HTML and Java!");
d.applyBindings();
MyResource.loadFireBug();
}
现在当 Firebug 启动时,它至少有一个封闭资源的范围。 我们仍然无法添加断点,因为资源没有出现在文件下。也许 DukeScript 专家可以建议一种更好的处理方法。
注意 1:您可以使用 load Bootstrap,只需将其包含到带有脚本标记的页面中即可。参见
注意 2:不幸的是 FireBug Lite 似乎在 Bootstrap 版本 1.2 之后有一些问题。参见
注释 3: