Метод отладки пользовательских скриптов в Chrome - PullRequest
6 голосов
/ 28 августа 2011

Я попытался внести некоторые изменения в пользовательский скрипт, чтобы он работал в Chrome, но когда я перетаскиваю его в окно Chrome, чтобы установить, появляется диалоговое окно с сообщением «Invalid Script Header».

Я пытался использовать Инструменты разработчика и встроенную консоль Javascript для отладки любых возникающих ошибок, но ничего не отображается для перечисления какой-либо информации.

Console.app не содержит ничего значащего, за исключением того же сообщения об ошибке, которое я уже знаю.

[0x0-0x2d02d] .com.google.Chrome: [346: 1547: 16686819618022: ОШИБКА: extension_error_reporter.cc (55)] Ошибка расширения: неверный заголовок сценария.

Как разумно отладить это сообщение об ошибке и выяснить, что в заголовке неверно?

Я использую Chrome 15.0.861.0 на канале разработчика под ОС 10.7 Lion.

Ответы [ 3 ]

6 голосов
/ 29 августа 2011

Я наконец наткнулся на ответ на этот вопрос, забавно через Отчет об ошибках хрома .

Как оказалось, ответ на мой вопрос был в (значительно кратком) Документация UserScript для Chrome page.

С правилами @include в стиле Greasemonkey Chrome не может знать, для каких доменов будет работать скрипт (например, google. *также можно запустить на google.evil.com).Из-за этого Chrome просто сообщает пользователям, что эти сценарии будут работать на всех доменах, что иногда страшнее, чем необходимо.С @match Chrome сообщит пользователям правильный набор доменов, на которых будет запускаться пользовательский скрипт.

Как выяснилось, я использовал @match http://*musicbrainz.org в попытке сопоставить www.musicbrainz.org кактакже как musicbrainz.org, но в цитируемом тексте это не спасет вас от случайного совпадения evilmusicbrainz.org.Поэтому я решил использовать две строки:

@match http://*.musicbrainz.org
@match http://musicbrainz.org
4 голосов
/ 02 сентября 2011

Тип:

 debugger;

Где-то в коде, и веб-инспектор появится в этом месте. Я ответил на аналогичный вопрос здесь Chrome Debugger Inject JavaScript

1 голос
/ 27 января 2013

Я понял, когда получил то же сообщение об ошибке ( НЕВЕРНЫЙ ЗАГОЛОВОК СКРИПТА ), что оно вызвало опечатку между // == UserScript == Заголовок.1005 *

Линия wronge

// @run-at document<b>.</b>end

исправленная строка

// @run-at document<b>-</b>end
...