如何在DukeScript中调试JavaScript

时间:2015-06-02 23:57:59

标签: firebug-lite dukescript

使用DukeScript时是否可以调试JavaScript? 我尝试过添加FirebugLite

echo $valor[$i][4]; // this would be the object itself - cannot be printed
                    // but that first part is used for object access.
echo $valor[$i][4]->ESP_Name; // the only property of the object, a string
                    // properties of objects are accessed with "->" and the property name.

它加载并且非常棒,但它没有$ root模型的可见性。 此外,我不知道是否可以添加断点。

1 个答案:

答案 0 :(得分:0)

部分地,可以包括FirebugLite。请参阅示例here。 我发现的一个问题是Firebug加载但没有模型的可见性,$ root返回undefined。 我试图通过在main / resouces下创建一个Javascript资源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"
};

然后我们创建一个相应的Java类来加载资源

@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:您可以使用加载Bootstrap,只需将其包含在带有脚本标记的页面中即可。见here

注意2:不幸的是,FireBug Lite在1.2版之后似乎与Bootstrap有一些问题。见here

注3:Here are a couple of ways关于如何从javascript上下文访问DukeScript模型