Отладка внедренных сценариев jQuery Mobile - PullRequest
4 голосов
/ 03 апреля 2011

В jQuery Mobile я могу определить «мобильные страницы» как div s с data-role=page.

Они могут храниться в других файлах HTML и вставляться в специальные файлы на главной странице HTML.

В такой div я могу поместить тег script, и этот скрипт также будет вставлен в мою главную страницу.

Сценарий не отображается как тег script в моем DOM, но, скорее всего, внедряется как встроенный, и, таким образом, он не отображается стандартным способом в отладчике, например. Панель сценариев FireBug.

Кто-нибудь нашел нормальный способ отладки этих сценариев (надеюсь, в FF или Chrome)?

EDIT:

Просто чтобы уточнить - тег script на «другой» странице не является встроенным сценарием. Это:

<div data-role="page" id="some_id">
    <script type="text/javascript" src="MyScript.js"></script>
    ...
</div>

Тем не менее, он внедряется как встроенный скрипт в DOM.

Кстати - если я добавлю тег script в заголовок HTML, он вообще не будет загружен.

РЕДАКТИРОВАТЬ 2:

Дополнительные уточнения:

  1. Я пишу каркас, в который будут добавлены «модули расширения» на сайте клиента, и решение, какой модуль (то есть дополнительные «страницы» со скриптами) загрузить, является решением времени выполнения. Поэтому на моей главной странице нет предварительных знаний о том, какие скрипты загружать, и я должен отложить загрузку до времени загрузки модуля.

  2. Моя конечная цель - дать возможность разработчикам «модулей» отлаживать свои сценарии. Для этого я хотел бы получить решение, в котором файлы сценариев ссылок доступны в FireBug / ChromeDevTools, как и любой другой сценарий.

Кажется, что это стандартное поведение jquery (базовое, а не мобильное) для удаления тега script из загруженного AJAX html и его оценки inline, вместо того, чтобы оставить тег script там и позволить браузеру загрузить его нормально.

Я не совсем понимаю причины, стоящие за этим, и это действительно мешает моим вариантам отладки: - (

Кстати, я использую jQuery 1.5.2 (такое же поведение с 1.5.1) и jQuery Mobile alpha 4 (то же самое с 3)

1 Ответ

0 голосов
/ 05 апреля 2011

Скрипт добавляется к документу на лету и поэтому обычно не виден для firebug.Существовало дополнение, которое обрабатывало отладку динамически загружаемых скриптов.Inline Code Finder for Firebug, но последний выпуск был в 2009 году. Возможно, вы сможете использовать его, если измените поддерживаемые версии.

Кстати.Я считаю, что вы не должны использовать эту функцию мобильного jquery.Он предназначен для базовой поддержки огромных проектов с большим количеством встроенных блоков скриптов и т. Д.

Вы должны включить свои скрипты на каждую подстраницу и заставить ее работать таким образом

или

Динамически загружайте ваши скрипты, когда это необходимо, с помощью .getScript(), если они слишком велики, чтобы включать их все время.

[edit]

Да, если вы поместите скрипт в голову, он будетне быть загруженным.Я повторяю: поместите скрипт в заголовок КАЖДОЙ страницы и привяжите pageshow правой страницы вместо обычной document.ready

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...