Marik Опубликовано 28 июля, 2009 Жалоба Share Опубликовано 28 июля, 2009 Делаю букмарклет, который бы загружал title для всех ссылок на странице и подписывал эти тайтлы к анкорам ссылок. На сайте для которого делается букмарклет уже используется jQuery, поэтому делаю именно в этом фреймворке. Получилось два варианта, и две нерешенных проблемы: Вариант 1: $("div.block_round table.c33_14 td.td33_19 a[title^='http://']").load(this.href+" title"); Беда в том, что передать в качестве параметра this.href нельзя, а хотелось бы. Может знаете как? Вариант 2: $("div.block_round table.c33_14 td.td33_19 a[title^='http://']").each(function() {$.get(arguments[1],function(data){alert(data.substring(data.toLowerCase().indexOf("<title>")+7,s.toLowerCase().indexOf("</title>")));});}); Беда в том, что внутри функции обрабатывающей событие success для ajax запроса я не знаю как обратиться к исходному объекту DOM для которого создавался get запрос. В общем, вопрос в теме сформулирован — как с помощью jQuery сделать букмарклет, который бы загружал тайтлы по ссылкам на странице? Ссылка на комментарий Поделиться на другие сайты More sharing options...
mr.Faster Опубликовано 28 июля, 2009 Жалоба Share Опубликовано 28 июля, 2009 а тайтлы запросом получаешь по принципу url -> title ? Ссылка на комментарий Поделиться на другие сайты More sharing options...
Marik Опубликовано 28 июля, 2009 Автор Жалоба Share Опубликовано 28 июля, 2009 а тайтлы запросом получаешь по принципу url -> title ? Да. Ну и полученный title добавить в анкор ссылки или рядом. Попробуй так: $(this).attr("href") java script:(function(){$("div.block_round%20table.c33_14%20td.td33_19%20a[title^='http://']").load($(this).attr('href')+"%20title");})(); Не работает — в пределах вызова получается undefined В контексте функции $(this) — это объект самой функции (в моем случае load), а надо как-то передать в функцию свойство объекта для которого вызывается функция. Ссылка на комментарий Поделиться на другие сайты More sharing options...
Marik Опубликовано 28 июля, 2009 Автор Жалоба Share Опубликовано 28 июля, 2009 xct Нет, нужно для каждой ссылки, загрузить страницу на которую ведет эта ссылка, и дописать к тексту каждой ссылки заголовок соответствующей ей страницы. (<title></title>) Ссылка на комментарий Поделиться на другие сайты More sharing options...
Marik Опубликовано 30 июля, 2009 Автор Жалоба Share Опубликовано 30 июля, 2009 Спасибо за помощь, но вот облом — не работает и так. Притом какой-то странный затык с аяксом. java script:(function(){ jQuery(document).ready( function($){ $("div.block_round%20table.c33_14%20td.td33_19%20a[title^='http://']").each( function(){ var urlh = $(this).attr("href"); var html = $.ajax({url: urlh,type: "GET",async: false,dataType: "html"}).responseText; var title = html.substring(html.toLowerCase().indexOf("<title>")+7, html.toLowerCase().indexOf("</title>")); $(this).html($(this).html() + " - " + title); }); } ); })(); Посмотрел в фаербаге, он даже выдает во вкладке Net, что есть обращения, но ответы от серверов пустые. Притом, это не зависит от урла. Такое ощущение, что ajax запрос не может быть выполнен из-за... не знаю из-за чего. Может сталкивались с подобным? А ваш скрипт работает на сайте (а не собственной странице), если в виде букмарклета подключается? Update: Посмотрел снифером, почему-то отправляются не GET запросы, а OPTIONS. Это при том, что в JS я явно указал type: GET Ссылка на комментарий Поделиться на другие сайты More sharing options...
mr.Faster Опубликовано 30 июля, 2009 Жалоба Share Опубликовано 30 июля, 2009 еще бы знать что такое букмарклет серверная часть доступна? если доступна, выведи на печать чего нить и фаербагом посмотри response Ссылка на комментарий Поделиться на другие сайты More sharing options...
Marik Опубликовано 30 июля, 2009 Автор Жалоба Share Опубликовано 30 июля, 2009 Ссылки ведут на другой домен? Да. Если это запрещено какими-либо настройками безопасности, то есть ли способ это обойти? еще бы знать что такое букмарклет серверная часть доступна? если доступна, выведи на печать чего нить и фаербагом посмотри response Ну... как бы вот. Серверная часть работает, если об этом был вопрос. Выводить пробовал, фаербагом смотрел response пустой. О том и речь. Там запрос почему-то не GET идет, а OPTIONS. Ссылка на комментарий Поделиться на другие сайты More sharing options...
mr.Faster Опубликовано 30 июля, 2009 Жалоба Share Опубликовано 30 июля, 2009 ajax не кроссдоменный вроде Ссылка на комментарий Поделиться на другие сайты More sharing options...
Marik Опубликовано 30 июля, 2009 Автор Жалоба Share Опубликовано 30 июля, 2009 Всем спасибо за советы! Сделал еще интересней. Поскольку исходный сайт не мне принадлежит, то на нем никакого скрипта я не мог разместить, но есть функция $.getScript, которая может загружать скрипты с других доменов. Ей и воспользовался. Только у меня "прокси" выдавал JS код для вставки текста в нужное место. Осталось только с корректной обработкой разных кодировок на проксе разобраться. Ссылка на комментарий Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Заархивировано
Эта тема находится в архиве и закрыта для дальнейших ответов.