[UserJS] Problem ze stworzeniem skryptu lekko korygujacego wyglad formularza.

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

Mam prace ktore polega na dosc powtarzalnym wpisywaniu danych do formularza i chcialbym sobie uproscic pare spraw. Nie bardzo sobie radze z Javascriptem w zastosowaniu go do edycji strony. Probowalem sobie sam z tym dac rade ale niestety nie podolalem. Sprawa wyglada tak:
Chcialbym przypisac jednemu elementowi select aby byl domyslnie wybrany. I tu pojawia sie problem bo jedyna rzecza ktora okresla ten select jest name a okresleniami option tylko value i teraz wiem tylko ze powinno to wyglad mniej wiecej tak:

document.[wybor wlasciwego elementu].option[idwybrane].setAttribute("selected", "selected")

Do tego chcialbym ukryc pewna czesc okienek i cos jeszcze zrobic ale mysle ze poradze sobie z tym analogicznie.

nowotny napisał(a):

No to skoro wiesz co chcesz zrobić i jak to w czym problem...?

yabol napisał(a):

w tym problem ze wszystko co probuje zmienic na tej stronie nie dziala. Jedyne co do tej pory zadzialalo to alert(). Strona jest pod protokolem https ale wlaczylem userjs dla https w ustawieniach.
Nie dziala np. cos takiego chociaz teoretycznie powinno dobrze wyszukac element o id: menu i ustawic niewidocznosc.

// @include *
var d = document.getElementById("menu"); 
d.setAttribute("style", "visibility:hidden");

nowotny napisał(a):

Trzeba użyć wyzwalacza:

// @include *
document.addEventListener('DOMContentLoaded', function(){
          var d = document.getElementById("menu"); 
          d.setAttribute("style", "visibility:hidden");
}, false);

Jak testujesz na 10-tce to zamiast 'DOMContentLoaded' lepiej użyć 'load'...

yabol napisał(a):

Hmm teraz wlasciwie poradzilbym sobie ze wszystkim tyle ze jest problem bo ten formularz ktory chce edytowac zostaje wywolany Ajaxem wiec nie ma go w kodzie danej strony. Nie wiem czy jest mozliwosc manipulacji w kod wyswietlany dopiero po nacisnieciu danego linka.

yabol napisał(a):

Dodam tylko ze okienko z formularzem jest wywolywane tak:

<a href="ajax.kandydat_dodaj.php?wiele=1" id="dodajKandydata"
rel=floathuge rev=Nie masz uprawnień do dodania Kandydata class="ico_dodajkandydata" 
title="Dodaj wielu">Dodaj wielu</a>

Mam nadzieje ze jest jakis sposob aby dobrac sie do tego kodu za pomoca JS.

nowotny napisał(a):

Musiałbyś dodać zdarzenie 'OnClick' do tego linku, które będzie wywoływało funkcję zaznaczającą odpowiedni element formularza... Poszukaj sobie podobnych skryptów na http://userscripts.org albo zapytaj na ichnim forum...

d.i.z. napisał(a):

Originally posted by nowotny:

Jak testujesz na 10-tce to zamiast 'DOMContentLoaded' lepiej użyć 'load'...


Dlaczego?

yabol napisał(a):

Rozwiązanie:

document.addEventListener("DOMNodeInserted", function() {
    alert("the document has been modified");
}, false);

nowotny napisał(a):

Originally posted by d.i.z.:

Originally posted by nowotny:

Jak testujesz na 10-tce to zamiast 'DOMContentLoaded' lepiej użyć 'load'...


Dlaczego?


Zauważyłem, że u mnie na 10 ten wyzwalacz nie działa lub czasami działa a czasami nie... nie doszedłem czym to może być spowodowane... W 9 wszystko działa ok... Dlatego, w czasie testów, lepiej jest użyć 'load' żeby nam ciśnienie nie skoczyło... wink