Я использую скрипт содержимого расширения Chrome для программного ввода другого сценария контента, который может обращаться к переменным веб-страницы и DOM. Я делаю это на YouTube, чтобы дождаться события onYouTubePlayerReady
.Как я могу уловить ошибки в программном применении JavaScript из расширения Chrome?
Итак, у меня есть файл content_script.js
, который содержит:
var s = document.createElement('script');
s.src = chrome.extension.getURL('src/js/content_script_inject.js');
(document.head||document.documentElement).appendChild(s);
s.onload = function() {
s.parentNode.removeChild(s);
};
И файл content_script_inject.js
, который выполняет действия на самой веб-страницы. В моем закачиваемом содержимом сценарии, я жду onYouTubePlayerReady
события
function onYouTubePlayerReady(playerId) {
foo(); // <-- function not defined, error does not show in console
}
foo(); // <-- error shows in console
Если ошибка выполнения вызвана, например, вызов функции, которая не существует такие как foo()
в описанном выше случае, я не вижу в этом ошибка на консоли, когда она вызывается изнутри этой функции.
Итак: Как я могу уловить ошибки, сгенерированные в этом JavaScript при программировании? Я предполагаю, что это потому, что функция вызывается из JavaScript YouTube ...?
_ «Однако если этот вложенный сценарий содержит синтаксическую ошибку или если какая-либо ошибка во время выполнения вызвана, например, вызовом функции, которая не существует, я не вижу эту ошибку на консоли» _ Это, конечно, не нормальный. Обнаружение ошибок из кода - отдельная тема, но ошибки должны регистрироваться. – Xan
@ Xan Я только что проверил это снова, и вы правы. Что-то еще должно было заставить ошибку sytnax не появляться. На самом деле, только ошибки времени выполнения не регистрируются. – slhck
Вы уверены, что на самом деле есть ошибка? Можете ли вы предоставить (и проверить) минимальный пример того, что должно произойти, но не печатает ошибку? – Xan