2017-01-24 4 views
0

На странице Drupal элемент кнопки фокусируется, прежде чем страница будет полностью загружена.Найти скрипт, который устанавливает кнопку на фокусе

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

Когда я заменю с DIV, вопрос нет, так что его отношение к самому (ни один класс, ни идентификатор элемента) кнопочного элемента

+0

Невозможно отладить это без видимого кода. –

ответ

1

То, что вы хотите сделать, это правой кнопкой мыши на элемент, который вы считаете для запуска события и в контекстном меню нажмите «проверить». Открывается панель разработки Chrome, и вы должны увидеть тег html для этого элемента, на который вы нажали. На этом баре есть два раздела: один с html-тегами, а другие с вкладками с именем Style, Computed, Event Listeners, DOM Breakpoints и Properties.

Тот, кого вы хотите, - это Слушатели, поэтому нажмите на эту вкладку. Теперь мы видим все слушатели этого типа элементов сгруппированных элементов html. При открытии группы вы должны увидеть список элементов слева с ссылкой на эту конкретную строку кода для обработчика события. Если вы нажмете на ссылку, вы переключитесь на файл, где находится код.

Теперь трудная часть. Как вы увидите на некоторых веб-страницах, есть много обработчиков. Кроме того, использование таких библиотек, как JQuery, затрудняет поиск фрагмента кода, который действительно что-то делает, и код, вероятно, минимизирован.

Итак, предположим, вы нашли код, который хотите отлаживать. Часто это в таком формате, как

var namespace = { 
    ... 
    handler: function(event) { 
    /* Event handler code here */ 
    }, 
    ... 

В подобном случае, это может работать

(function() { 
    var old_handler = namespace.handler; 
    namespace.handler = function() { 
    debugger; // this make a breakpoint here and stops 
    old_handler.apply(this, arguments); 
    } 
})(); 

Когда все выходит из строя, сделать локальную копию файла, содержащего код и настройки сервера Apache так что вы проксируете веб-сайт, за исключением того файла, который вы укажете локально. Затем вы можете изменить его, как вам нравится. Это не будет работать на веб-сайте https.

+0

Спасибо большое! Я нашел это :) – Xavin

Смежные вопросы