2015-06-02 7 views
0

Можно ли отлаживать JavaScript при использовании DukeScript? Я попытался добавить FirebugLiteКак отлаживать JavaScript в DukeScript

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

Он загружает и это удивительное, но это не имеет видимости $ корневой модели. Также я не знаю, можно ли добавить точки останова.

ответ

0

Отчасти можно включить FirebugLite. См. Например, here. Одна из проблем, которые я обнаружил, заключается в том, что Firebug загружает, но не имеет видимости модели, $ root возвращает undefined. я пытался обойти эту проблему путем создания 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" 
}; 

Затем мы создаем correpsponding Java класс для того, чтобы загрузить ресурс

@JavaScriptResource("MyResource.js") 
public class MyResource { 

    @net.java.html.js.JavaScriptBody(
     args = {}, body = 
     "MyResource.loadFirebug();" 
) 
    public static native void loadFireBug(); 
} 

сейчас в методе onPageLoad() Java мы можем вызвать метод JavaScript, который загружает FirebugLite

/** 
* 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, он имеет по крайней мере Scop e из его охватывающего ресурса. Мы все еще не можем добавить контрольные точки, потому что ресурс не отображается под файлами. Возможно, эксперты DukeScript могут предложить лучший способ справиться с этим.

Примечание 1: вы можете использовать загрузку Bootstrap, просто включив ее в страницу с тегом скрипта. См. here

Примечание 2: К сожалению, у FireBug Lite возникают проблемы с Bootstrap, помимо версии 1.2. См here

Примечание 3: Here are a couple of ways о том, как получить доступ к модели DukeScript из яваскрипта контекста

+0

Надеюсь, в будущем «удаленной отладки» будет работать также с Firebug Lite: – ZiglioUK