forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   JavaScript / HTML (http://forum.boolean.name/forumdisplay.php?f=136)
-   -   Огнелис экст. перехват ссылки. (http://forum.boolean.name/showthread.php?t=14411)

КостяБатон 13.03.2011 04:14

Огнелис экст. перехват ссылки.
 
Здравствуйте друзья.

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

Разрабатываю аддон (т.е. extension) для браузера Firefox и возник вопрос.
Если коротко, то имеется сайт, наподобий интернет-магазина, где на странице каждого товара есть ссылка "хотлинк", ссылка эта естественно разная для каждого товара. Мне требуется узнать, как эту ссылку перехватить и скинуть в файл по нажатию мной горячей клавиши.
Вот пример одной из таких ссылок:
PHP код:

<a id="recordnum" href="X" title="X" >Hotlink</a

вместо Х какаято ссылка.

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

ПС. если вдруг кто не знает, то язык разработки аддонов для огнелиса - яваскрипт.

Randomize 13.03.2011 04:37

Ответ: Огнелис экст. перехват ссылки.
 
На яве записать в файл просто так не получится.
По поводу получения href:
По id элемента можно получит только одну ссылку:
PHP код:

elem document.getElementById('recordnum');
alert(elem.href); 

Если ссылок много, то нужно искать их по полю class:
PHP код:

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. На нём это реализовать намного проще:
PHP код:

alert( $('.recordnum').attr('href'); ) 

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

Upd:
Нашёл про запись в файл
PHP код:

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();


Но думаю браузер не позволит такую наглость.

КостяБатон 13.03.2011 05:13

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


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot