urlfilter w Operze

w dziale Aplikacje dla Opery
ortegus napisał(a):

Witam wszystkich.
Postanowiłem napisac wtyczkę do opery wykorzystującą url filter Opery do blokowania stron.
Gdy ustawiam tablicę adresów "na sztywno" wszystko działa. Problem pojawia się gdy chcę ta tablicę zbudowac dynamicznie.
Uzywam do tego localStorage.Po kazdym wywołaniu funkcji blokuj(wywoływana jest poprzez nacisnięcie przycicku w okienku popup) dodawane jest pole tekstowe(wpisany adres strony) do localstorage.
kod js wygląda następująco:
<code>
function blokuj()
{
var tekst = ("'" + document.getElementById("tekst1").value + "'");
var i=localStorage.length;

if(i==0)
localStorage.setItem(i,tekst);
else
localStorage.setItem(i+1, tekst);
// stworzenie tablicy stringów z adresami
var adresy = new Array();
for(var j=0;j<localStorage.length;j++)
{
adresy[j] =localStorage.getItem(j);
}
// blokowanie stron
if (typeof opera.extension.urlfilter !='undefined')
{
var filter = opera.extension.urlfilter;
adresy =localStorage.getItem(i);
for (var i=0; i<adresy.length; i++)
{

filter.block.add(adresy);
}
}
//alert(adresy);

}
</code>
komenda alert jest zakomentowana, sprawdzałem tylko czy tablica jest utworzona(wszystkie adresy znajdowały sie w tablicy)
Problem polega na tym ze strony z tablicy nie sa blokowane.Linijka gdzie jest z filter.block.add w nawiasie jest oczywiscie adres i nawiasy kwadratowe ze zmienna i.

Czy ktos wie w czym tkwi problem ?

ortegus napisał(a):

Wtyczka dodaje przycisk na pasku, nastepnie po wcisnięciu przycisku pojawia się okienko popup i w nim jest odwołanie do js

ortegus napisał(a):

W takim razie mam pytanie czy mogę ta sprawę zrobic przy użyciu preferencji(plik options.html) ?

ortegus napisał(a):

Użytkownik ma sam wybierac którą stronę chce zablokowac/odblokować.
W okienku popup pojawia sie pole tekstowe i przycisk, po nacisnięciu którego, wywoływane sa funkcje dodaj/usun. Adres strony jest pobierany(z pol tekstowych), nastepnie dodawany do tablicy na której ma dzialać filter. Skoro musiałbym z poziomu popup użyć opera.extension.onmessage tak jak poradzileś wyżej, to zastanawiam się czy w opcjach nie dac tego samegozrobic z odnosnikiem zeby pozniej zapisał wszystko w widget.preferences (aby pominąc localStorage).Czyli były by tez pola do wstawiania adresów z opcja usun/dodaj.

W każdym bądź razie i tak dziękuję za pomoc.(nadal bym się zastanawiam co jest źle zrobione w js zamiast popracować nad komunikacja popup)

vandal7 napisał(a):

przepraszam za oftop
bardzo by sie przydala mozliwosc blokowania i przegladania blokowanych stron w operce : )

lemari napisał(a):

@vandal7
http://my.opera.com/karolkuich/blog/opera-adblock
Polecam też F1 wink

ortegus napisał(a):

Mam do ciebie pytanie izaak-goldstein.
Mianowicie udało mi się napisac ta wtyczkę przy użyciu localStorage. Zrezygnowałem całkowicie z plików js(nawet nie skorzystałem z opcji message smile ). Wystarczyły pliki index i popup.
(niestety filter się uruchamia w momencie odpalenia przeglądarki więc po wpisaniu adresów muszę zrestartować opere niezależnie czy dodaje adresy do blokowania czy zdejmuje blokade)
Ale dziwię się bo np: urlfilter nie działa na strone stratową!(oczywiscie subdomeny są zblokowane)i tu pojawia sie pytanie czy da się zablokować strone startową?
Oraz drugie pytanie trochę z innej beczki.
Używam style.display="none" w celu ukrycia niektórych divów(kwestia autoryzacji u mnie), ale jeden div ze skryptem nie chce zniknąc(dokladnie sam skrypt, bo akurat wyswietla pewne info , natomiast sam akapit z diva znika), czy da się też zablokować w sprytny sposób skrypt wyswietlający informację ?