Я использую сайт Gmail Мобайл (не версию для смартфона, а старую, облегченную, совместимую с телефоном) в моем настольном браузере Firefox через набор URL-адресов, начиная с https://mail.google.com/mail/ и / 0 / х / . Недавно (около 4-5 дней назад) страница поиска электронной почты (которую я добавил в закладки как https://mail.google.com/mail/u/0/x/18ffn87o67mlt-/?&v=srch ) начала давать мне это ошибка:
XML Parsing Error: not well-formed
Location: https://mail.google.com/mail/u/0/x/1p6790md7rs8l-/?&v=srch
Line Number 6, Column 38:
for(i=0;i<searchButtonElements.length;i++)searchButtonElements[i].onclick=function(event){var urlParams={"s":"q","q":document.getElementById("sbq").value};urlParams[event.target.getAttribute("name")]=event.target.getAttribute("value");var encodedParams=[];for(var param in urlParams)encodedParams.push(encodeURIComponent(param)+"\x3d"+encodeURIComponent(urlParams[param]));document.getElementById("sbf").setAttribute("action","?"+encodedParams.join("\x26"))};
-------------------------------------^
Если я проверяю источник страницы с ошибкой, отображается фактический источник страницы поиска Gmail.
Я не вносил никаких изменений в мои локальные установки / расширения / скрипты Firefox. Ошибка только появилась внезапно.
Другие страницы того же сайта Gmail Мобайл работают нормально. Если я пытаюсь получить доступ к функции поиска с любой из этих страниц, я получаю ту же страницу с ошибкой, как описано выше.
У меня вопрос, есть ли способ настроить синтаксический анализатор Firefox XML (не перестраивая его из источника :)), чтобы он игнорировал указанную ошибку? (Ошибка возникает внутри фрагмента JavaScript (окруженного <script>...</script>
тегами), поэтому, на мой взгляд, анализатор XML не должен даже беспокоиться об этом.)
Или же, есть ли способ перехватить процесс загрузки ресурсов браузера, чтобы я мог написать собственный обработчик для изменения (исправления) необработанного содержимого страницы, прежде чем оно будет проанализировано синтаксическим анализатором?
Заранее спасибо.
i<searchButtonElements.length;
). Очевидно, что парсер пытается обработать<searchButtonElements...
как новый тег, хотя он уже находится внутри<script>
пары тегов.<script>...</script>
пары тегов. Например, Chrome загружает ту же страницу без каких-либо ошибок, указывая на то, что он либо не пытается проанализировать фрагмент скрипта, либо игнорирует ошибку, поскольку это не влияет на генерацию DOM.