Я разрабатываю небольшое расширение 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
Как вы загружаете свой скрипт? Я имею в виду, может быть, это очевидный ответ, но ваш код использует JQuery. Многие сайты используют это, поэтому ваш код работает. Но, например, dropbox не использует его, поэтому он никогда не будет работать.
редактировать:
Поместите свой сценарий в документ. готовая функция. Я попробовал это, и это помогло мне получить URL.
$( document ).ready(function() {
Если вы столкнулись с некоторыми проблемами, попробуйте использовать его в режиме noConflict, как в;
jQuery( document ).ready(function() {
обновление 2
Как я ее нашел: я просто использовал консоль браузеров. Во время выполнения вашего скрипта он получил ошибку.
TypeError: Cannot read property 'click' of null
Это означает, что DOM еще не готов. Или, действительно, он протестировал его. Возможно, JQuery находится в конфликте. Следовательно, использование JQuery, а не $
href
? Или их функция щелчка вызывается JavaScript, основанным на другом свойстве?