0

DukeScript を使用しているときに JavaScript をデバッグすることは可能ですか? FirebugLite を追加してみました

<script type='text/javascript' src='http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js'></script>

それがロードされ、それはすばらしいことですが、$root モデルは見えません。また、ブレークポイントを追加できるかどうかもわかりません。

4

1 に答える 1

0

部分的に、FirebugLite を含めることができます。たとえば、ここを参照してください。私が見つけた問題の 1 つは、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: script タグを使用してページに組み込むだけで、load Bootstrap を使用できます。こちらをご覧ください

注 2: 残念ながら、FireBug Lite はバージョン 1.2 以降の Bootstrap に問題があるようです。こちらをご覧ください

注 3: JavaScript コンテキストから DukeScript モデルにアクセスする方法をいくつか示します。

于 2015-06-02T23:57:59.020 に答える