Перейти к содержанию

Jquery - Загрузить Title для ссылок на странице


Marik

Рекомендуемые сообщения

Делаю букмарклет, который бы загружал 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 сделать букмарклет, который бы загружал тайтлы по ссылкам на странице?

Ссылка на комментарий
Поделиться на другие сайты

а тайтлы запросом получаешь

по принципу 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), а надо как-то передать в функцию свойство объекта для которого вызывается функция.

Ссылка на комментарий
Поделиться на другие сайты

xct

Нет, нужно для каждой ссылки, загрузить страницу на которую ведет эта ссылка, и дописать к тексту каждой ссылки заголовок соответствующей ей страницы. (<title></title>)

Ссылка на комментарий
Поделиться на другие сайты

Спасибо за помощь, но вот облом — не работает и так. Притом какой-то странный затык с аяксом.

 

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

Ссылка на комментарий
Поделиться на другие сайты

еще бы знать что такое букмарклет :)

серверная часть доступна? если доступна, выведи на печать чего нить и фаербагом посмотри response

Ссылка на комментарий
Поделиться на другие сайты

Ссылки ведут на другой домен?

Да. Если это запрещено какими-либо настройками безопасности, то есть ли способ это обойти?

 

еще бы знать что такое букмарклет :)

серверная часть доступна? если доступна, выведи на печать чего нить и фаербагом посмотри response

Ну... как бы вот.

Серверная часть работает, если об этом был вопрос. Выводить пробовал, фаербагом смотрел response пустой. О том и речь. Там запрос почему-то не GET идет, а OPTIONS.

Ссылка на комментарий
Поделиться на другие сайты

Всем спасибо за советы! Сделал еще интересней. Поскольку исходный сайт не мне принадлежит, то на нем никакого скрипта я не мог разместить, но есть функция $.getScript, которая может загружать скрипты с других доменов. Ей и воспользовался. Только у меня "прокси" выдавал JS код для вставки текста в нужное место.

 

Осталось только с корректной обработкой разных кодировок на проксе разобраться.

Ссылка на комментарий
Поделиться на другие сайты

Заархивировано

Эта тема находится в архиве и закрыта для дальнейших ответов.

×
×
  • Создать...