Не удалось получить URL и текст элемента, по которому щелкнули

0

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

Код jquery, который я использую

$('*').click(function(){
    var url = this.href;
    if(url!=undefined){
        console.log(url+ "   " + this.text);
    }
});

Этот код отлично работает в большинстве случаев, но когда я пытаюсь получить ссылки на таких сайтах, как Evernote, Box.com, Dropbox просто не работает. Я не могу понять причину. Например, на box.com, если я нажимаю на любой файл, код выше не может вернуть мне url и текст и очень похожую ситуацию в Dropbox.

Есть ли какое-то ограничение кода, который я использую? Любая помощь/идея приветствуются.

Редактировать:

Для файла окна, проверяя элемент Firebug, я получаю

<a data-validate="filename not_empty_item_type" data-behavior="edit_in_place" data-item_type="folder" data-item_id="1816357023" data-field="name" data-url="/index.php?rm=box_files_update_item_info" class="item_link item_name_text edit_in_place item_name dnd" href="/files/0/f/1816357023/public_test">public_test</a>

У него есть "href".

Ссылка на бокс для проверки.

Код работает отлично, когда я нажимаю на обновления (с изображением глобуса) и файлы (с изображением папки) в верхней части страницы в box.com

  • 0
    Дайте мне ссылку на какой-нибудь пример Box.com, и я смогу выяснить это для вас.
  • 0
    Элементы на тех сайтах, где он не работает, имеют href ? Или их функция щелчка вызывается JavaScript, основанным на другом свойстве?
Показать ещё 6 комментариев

1 ответ

1

Как вы загружаете свой скрипт? Я имею в виду, может быть, это очевидный ответ, но ваш код использует JQuery. Многие сайты используют это, поэтому ваш код работает. Но, например, dropbox не использует его, поэтому он никогда не будет работать.

редактировать:

Поместите свой сценарий в документ. готовая функция. Я попробовал это, и это помогло мне получить URL.

$( document ).ready(function() {

Если вы столкнулись с некоторыми проблемами, попробуйте использовать его в режиме noConflict, как в;

 jQuery( document ).ready(function() {

обновление 2

Как я ее нашел: я просто использовал консоль браузеров. Во время выполнения вашего скрипта он получил ошибку.

TypeError: Cannot read property 'click' of null

Это означает, что DOM еще не готов. Или, действительно, он протестировал его. Возможно, JQuery находится в конфликте. Следовательно, использование JQuery, а не $

  • 0
    Вышеприведенный скрипт - это контент-скрипт расширения firefox, и я загружаю его для каждой страницы. Я также загружаю jquery lib для каждой страницы самостоятельно. Так что не зависит от того, использует ли сайт jquery или нет.
  • 0
    Можете ли вы быть уверены, что просто запустите событие jquery, например, при загрузке страницы с предупреждением? Это исключило бы это наверняка.
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню