Полезная информация

Хотите узнать больше о расширениях? Посмотрите ролики, рассказывающие о работе с расширениями Firefox.

Разработка » FF дополнение только для одной вкладки » 24-10-2009 12:21:48

сам принцип то понятен, пока не пойму, по какому принципу запомнить именно нужную вкладку, под ФФ програмлю не так давно, пока еще всех тонкостей не знаю :(

Разработка » FF дополнение только для одной вкладки » 24-10-2009 07:42:53

я и не прошу кого либо писать, я тупо спрашиваю, как это правильно сделать

Разработка » FF дополнение только для одной вкладки » 24-10-2009 02:51:57

условно говоря - в одной вкладке работает аддон, который собирает информацию на некоем ресурсе, а в другой вкладке я сам хожу по этому ресурсу :) а много профилей, много окон - не комильфо :) хотелось бы в одном окне все решить

Разработка » FF дополнение только для одной вкладки » 23-10-2009 18:14:26

Собственно необходимо запустить аддон для определенной вкладки и выполнять его для этой вкладки (и только для нее)

Флейм » Linux, Windows, Mac OS X - VII: свобода популярного гламура » 29-09-2009 20:23:45

krigstask пишет
be@ver пишет

sed = coreutils

Не-а (-:Е

Выделить код

Код:

% equery b `which sed`
 * Searching for /bin/sed ... 
sys-apps/sed-4.2.1 (/bin/sed)

ну не совсем coreutils, согласен :)

Выделить код

Код:

grep sed /sbin/grub-install | sed -n '$='

но без sed очень часто просто ни куда не деться :)

krigstask пишет

Понятно дело, что и так можно, и будет работать, но хочется покороче и покрасивше (-:Е

короче только на перле, можно одной регуляркой :)
а можно и вот так, можно еще и от basename избавиться, но там в цикле каждую строку резать и проверять - а это долго

Выделить код

Код:

#/bin/bash 
extinp=".wav"; 
extout=".dat"; 
for file in `find ./input/ -iname "*$extinp"`; do  
extlen=${#extinp}; 
len=${#file}; 
name=`basename $file $extinp`; 
full=${file:0:len-extlen}; 
base=${full%$name}; 
news=${base/input/output}; 
mkdir -p "$news"; 
cp "$file" "$news$name$extout";
done

Флейм » Linux, Windows, Mac OS X - VII: свобода популярного гламура » 29-09-2009 17:49:39

krigstask пишет

be@ver
Что-то в этом духе, но больно уж в лоб и громоздко. sed, опять же…

sed = coreutils
он по любому есть. можно конечно однострочником на перле, да и этот скрипт можно в однострочник развернуть, суть не изменится? можно еще и awk использовать :)

за что я и люблю Linux - за то, что сделать могу все, что хочу, любым удобным мне способом, хоть гланды через ж..., почему бы и нет, если мне так нравиться. под лином сижу на домашнем уже больше пяти лет, ни какого желания сидеть на винде, хотя по работе приходится.

Флейм » Linux, Windows, Mac OS X - VII: свобода популярного гламура » 29-09-2009 17:12:41

krigstask пишет

be@ver
Не-а, не то. Потеряется путь (Artist/Album)

Выделить код

Код:

#/bin/bash 
for FILE in `find ./input/ -iname "*.wav"`; do
    filein=`basename $FILE`;
    fileout=`basename $FILE .wav``echo ".dat"`;
    album=`echo "$FILE"|sed -n 's/input/output/p'`;
    pathin=`echo "$album"|sed -n "s/$filein//p"`;
    mkdir -p "$pathin";
    cp "$FILE" "$pathin/$fileout"
done

Проблемы с сайтами » Некорректно отображается сайт www.pozdravim.ru » 29-09-2009 16:42:23

Замени

Выделить код

Код:

<input style="font-size: 10px;" name="search_delivarea" size="18" maxlength="50" value="" type="text">

на

Выделить код

Код:

<input style="font-size: 10px;width:130px;" name="search_delivarea" size="18" maxlength="50" value="" type="text">

Флейм » Linux, Windows, Mac OS X - VII: свобода популярного гламура » 29-09-2009 15:24:33

krigstask пишет

Вопрос к кудесникам sh: есть желание написать что-то в духе

Выделить код

Код:

find /input/path/ -iname "*.wav" -exec flac {} -o <тут тоже что-нибудь>

То есть:
/input/Artist/Album/Title.wav → /output/Artist/Album/Title.flac
для всех найденных find'ом файлов
Идеи? (-:Е[

Выделить код

Код:

for FILE in `find ./input/ -iname "*.wav"`; do cp $FILE ./output/`basename $FILE .wav`.dat; done

вместо cp используешь любую свою программу :) .wav - то, что отбрасываем, .dat - то, что подставляем

Разработка » FF 3.5.3 и AJAX » 29-09-2009 14:38:51

malmax, я слабо знаком с XMLHttpRequest(), я больше с php работал. но, насколько знаю, данные post запроса должны быть сформированы в виде
datapost = "name1=" + urlEncodeData(data1) + "&" + "name2=" + urlEncodeData(data2)
и обязательно указать в заголовке размер этих данных :) что-то типа
httpRequest.setRequestHeader("Content-Lenght",  strlen(postdata));
зы. строку писал по памяти :)

ИМХО, данные то у тебя передаются, но "перехватчик" не видит размер данных и не определяет сколько перехватывать нужно

Разработка » Баян, подмена реферера. » 27-09-2009 16:37:02

Проверено на XULRunner, должно работать и в расширении для FF

Выделить код

Код:

var observerService = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
observerService.addObserver(this, "http-on-modify-request", false);
this.observe = function(object, string, data){
          if(string = "http-on-modify-request"){
               object.QueryInterface(Components.interfaces.nsIHttpChannel);
               var oldRef = object.getRequestHeader("Referer");
               object.setRequestHeader("Referer","http://www.google.com/"+oldRef,true);
          }
     }

проверялось на вот таком вот файлике

Выделить код

Код:

<html> 
<head> 
</head> 
<body> 
<?php
echo $_SERVER['HTTP_REFERER'];
?> 
<a href="?ddd=1">aa</a> 
</body> 
</html>

Первое обращение - пусто
Переход по ссылке - http://www.google.com/http://имя_сайта/
Все последующие - http://www.google.com/http://имя_сайта/?ddd=1

работает :)

Разработка » Подменить стили в загружаемой странице » 27-09-2009 12:22:26

вот такая конструкция получилась :)
запускается все под XULRunner

Выделить код

Код:

browser.addEventListener("DOMContentLoaded", startBrowser, true);

function startBrowser(){
    contentBrowser = browser.contentDocument;
    alert("1: " + contentBrowser.getElementsByTagName('link')[0].href);
    contentBrowser.getElementsByTagName('link')[0].href = "";
    alert("2: " + contentBrowser.getElementsByTagName('link')[0].href);
    contentBrowser.getElementsByTagName('link')[0].href = "chrome://TestBrowser/content/style.css";
    alert("3: " + contentBrowser.getElementsByTagName('link')[0].href);
    contentBrowser.getElementsByTagName('link')[0].href = "file:///home/username/prj/project/testbrowser/chrome/content/style.css";
    alert("4: " + contentBrowser.getElementsByTagName('link')[0].href);
}

все 4 алерта показывают разные значения, но моя таблица стилей не цепляется :(

Разработка » XULrunner нажатие кнопок и ссылок » 23-09-2009 18:34:35

Заработало (c)

Выделить код

Код:

function clickLink(){
    var divl = contentMe.getElementById("n5");
    var links = divl.getElementsByTagName("a");
    links[0].style.border="2px solid red";
    contentBot.location.href = links[0].href;
}

теперь бы разобраться, как onclick прописанный для ссыли обрабатывать :(

Разработка » XULrunner нажатие кнопок и ссылок » 23-09-2009 04:51:05

и ссылка и форма в html документе. самое смешное, что этот документ грузится в элемент browser, и происходит следующее:

Выделить код

Код:

var contentMe;
var browser;
/*
тут куча кода иницилизирующего наш browser
*/
browser.setAttribute("src", url);
browser.addEventListener("load", startBrowser, true);
/*
тут browser динамически добавляется в xul
*/
Выделить код

Код:

function startBrowser{
    contentMe = browser.contentDocument;
    var btn = contentMe.getElementById("btn");
    btn.style.border="2px solid red";
    browser.addEventListener("load", nextBrowser, true);
    btn.click();
}
Выделить код

Код:

function nextBrowser(){
    var divl = contentMe.getElementById("n5");
    var links = divl.getElementsByTagName("a");
    links[0].style.border="2px solid red";
    browser.addEventListener("load", nextBrowser1, true);
    links[0].click();
}
Выделить код

Код:

function nextBrowser1(){
/*
тут дальше что-то происходит
*/
}

в startBrowser обрабатываем форму, в nextBrowser пытаемся перейти по сылке. Попытка

Разработка » XULrunner нажатие кнопок и ссылок » 22-09-2009 21:21:16

Есть две функции
1. Нажатие на кнопку формы

Выделить код

Код:

function clickButton(){
    var btn = contentMe.getElementById("btn");
    btn.style.border="2px solid red";
    btn.click();
 }

2. Нажатие на ссылку

Выделить код

Код:

function clickLink(){
    var divl = contentMe.getElementById("n5");
    var links = divl.getElementsByTagName("a");
    links[0].style.border="2px solid red";
    links[0].click();
}

У Дэнни Гудмана и Майкла Моррисона пишется, что метод click изначально существовал только у элементов форм. Как тогда программно нажимать ссылки (и те элементы, у которых определен обработчик onclick)
сижу в тупике :( ибо первая функция работает полностью, вторая рисует рамочку и все :(

Разработка » Подменить стили в загружаемой странице » 21-09-2009 20:58:29

Насколько я понимаю необходим сервис для перехвата запросов

Выделить код

Код:

var observerService = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);

потом инициализировать собственно перехват для нашего объекта mainBrowser

Выделить код

Код:

observerService.addObserver(mainBrowser, "http-on-modify-request",   false);

какая функция будет обрабатывать эти перехваты? у нее определенное имя?? что-то типа

Выделить код

Код:

mainBrowser.observe = function(object, string, data){
if(string = "http-on-modify-request"){
object.QueryInterface(Components.interfaces.nsIHttpChannel);
/*
и тут делаем свое "грязное" дело
проверяем что это запрос css (как?)

*/
}
}

и как это все потом вернуть?
опять Components.classes["@mozilla.org/***

Разработка » Определить, что browser загрузил данные » 21-09-2009 20:38:07

Infocatcher пишет

Можно попробовать заменить obj.onload на obj.addEventListener("load", someFunc, true)

спасибо, заработало (c)

Разработка » Определить, что browser загрузил данные » 21-09-2009 19:14:51

В расширении динамически меняется src для browser. Необходимо отследить окончание загрузки страницы. В FF по onload вроде как работает :) в xulrunner - нет :(

вообще достаточно ли onload или есть другие методы?

Разработка » Подменить стили в загружаемой странице » 21-09-2009 19:11:18

В расширении есть browser, в который грузится страничка. Необходимо подменить стилевой файл (.css), подсунув стили из расширения. (необходимо что-бы страничка отрисовывалась с подмененными стилями.)

зы. перечитал большую часть форума, кое что понял :) но для меня это пока заумно, если можно - маленький пример, как это сделать

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]