Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Веб-программирование > JavaScript / HTML

JavaScript / HTML Создание динамической разметки страниц

Ответ
 
Опции темы
Старый 13.03.2011, 04:14   #1
КостяБатон
AnyKey`щик
 
Регистрация: 13.03.2011
Сообщений: 2
Написано 0 полезных сообщений
(для 0 пользователей)
Огнелис экст. перехват ссылки.

Здравствуйте друзья.

Сразу извиняюсь, если не туда запостил, но кажется раздел наиболее подходящий.

Разрабатываю аддон (т.е. extension) для браузера Firefox и возник вопрос.
Если коротко, то имеется сайт, наподобий интернет-магазина, где на странице каждого товара есть ссылка "хотлинк", ссылка эта естественно разная для каждого товара. Мне требуется узнать, как эту ссылку перехватить и скинуть в файл по нажатию мной горячей клавиши.
Вот пример одной из таких ссылок:
<a id="recordnum" href="X" title="X" >Hotlink</a
вместо Х какаято ссылка.

Заранее спасибо за помощь.

ПС. если вдруг кто не знает, то язык разработки аддонов для огнелиса - яваскрипт.
(Offline)
 
Ответить с цитированием
Старый 13.03.2011, 04:37   #2
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,355
Написано 2,471 полезных сообщений
(для 6,852 пользователей)
Ответ: Огнелис экст. перехват ссылки.

На яве записать в файл просто так не получится.
По поводу получения href:
По id элемента можно получит только одну ссылку:
elem document.getElementById('recordnum');
alert(elem.href); 
Если ссылок много, то нужно искать их по полю class:
var aryClassElements getElementsByClassName'recordnum'document.body );
    for ( var 
0aryClassElements.lengthi++ ) {
        
alert(aryClassElements[i].href);
    }


function 
getElementsByClassNamestrClassNameobj ) {
    var 
ar arguments[2] || new Array();
    var 
re = new RegExp("\\b" strClassName "\\b""g");

    if ( 
re.test(obj.className) ) {
        
ar.pushobj );
    }
    for ( var 
0obj.childNodes.lengthi++ )
        
getElementsByClassNamestrClassNameobj.childNodes[i], ar );
    
    return 
ar;

Также могу посоветовать использовать jQuery. На нём это реализовать намного проще:
alert( $('.recordnum').attr('href'); ) 
Через него можно искать элементы так, как мы обычно прописываем в CSS:
$('#element_id') - элемент по его ID
$('.element_class') - элемент определённого класса
$('.element_class div') - div элемент определённого класса
$('.element_class:first-child') - первый элемент внутри элемента определённого класса

Upd:
Нашёл про запись в файл
function CreateFile()
{
  var 
fsotf;
  
fso = new ActiveXObject("Scripting.FileSystemObject");
  
tf fso.CreateTextFile("c:\\testfile.txt"true);
  
// Вставка строки с переносом на новую.
  
tf.WriteLine("Testing 1, 2, 3.") ;
  
// Вставка 3 пустых строк.
  
tf.WriteBlankLines(3) ;
  
// Вставка новой строки, без переноса.
  
tf.Write ("This is a test.");
  
' Закрытие файла.
  tf.Close();

Но думаю браузер не позволит такую наглость.
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Randomize за это полезное сообщение:
КостяБатон (13.03.2011), LLI.T.A.L.K.E.R. (20.03.2011)
Старый 13.03.2011, 05:13   #3
КостяБатон
AnyKey`щик
 
Регистрация: 13.03.2011
Сообщений: 2
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Огнелис экст. перехват ссылки.

О, как оперативно. Спасибо большое, собственно искал getElementById. По поводу записи в файл - в огнелисе свой АПИ для разработки аддонов, в котором уже есть всё что нужно для работы с файлами и т.п. и по той же причине отпадает надобность в jQuery. А вообще, я думаю если уж пользователь поставил аддон (т.е. 100 раз нажал на "ОК" и "Беру ответственность на себя.") то вопросы безопасности отпадают сами собой.
Ссылка конечно одна, даже не понял как их может быть несколько. В моём посте Х это одна и таже ссылка во всех полях. Ещё раз спасибо - вопрос решён.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 04:25.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com