Problemy z debugowaniem skryptów zawartości w rozszerzeniu chrome za pomocą require.js
Aby załadować moduły do skryptów treści, używam następującego kodu (źródłohttp://prezi.com/rodnyr5awftr/requirejs-in-chrome-extensions/):
require.load = function (context, moduleName, url) {
var xhr;
xhr = new XMLHttpRequest();
xhr.open("GET", chrome.extension.getURL(url) + '?r=' + new Date().getTime(), true);
xhr.onreadystatechange = function (e) {
if (xhr.readyState === 4 && xhr.status === 200) {
eval(xhr.responseText);
context.completeLoad(moduleName)
}
};
xhr.send(null);
};
Problem pojawia się podczas debugowania za pomocą konsoli Chrome. Za każdym razem, gdy wystąpi błąd w jednym z moich modułów, po prostu zgłasza on błąd występujący w anonimowej funkcji, ale nie informuje mnie o tym, który moduł lub linia require.js wystąpił w tym module, ale zamiast tego zawsze wskazuje na linię eval w powyżej skryptu.
Ponieważ wiele osób korzysta z różnych odmian powyższego kodu podczas korzystania z require.js z rozszerzeniami chrome, musi istnieć prosty sposób na uzyskanie większej ilości informacji w konsoli debugowania, po prostu nie wiem, co to jest :).
Dzięki za pomoc!!
AKTUALIZACJA 4/1: Zmiana powyższej instrukcji eval () w celu użycia funkcji () wydaje się rozwiązać problem polegający na tym, że chromowana konsola dodaje informacje o dodawaniu. (zasługa za tę pracę idzie w tym kierunkupytanie).
Zdaję sobie sprawę, że te dwie funkcje nie są całkowicie wymienne (patrzto pytanie). Jeśli ktoś wie o jakichś pułapkach w używaniu Function () zamiast eval () w powyższym kodzie, daj mi znać !!