Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [js] ie, nodes, css on fly, czyli czemu ie nie smiga
dem
post
Post #1





Grupa: Zarejestrowani
Postów: 96
Pomógł: 7
Dołączył: 24.01.2006
Skąd: lublin/wawa

Ostrzeżenie: (0%)
-----


Witam,

Dawno mnie tu nie było, a potrzebuje pomocy.

Otóż robie projekt na uczelni w JS, gdzie sa tworzone divy w locie etc etc - czyli szmery i bajery.
Moj problem polega na tym, ze jesli robie

  1. var newDiv = document.createElement("div");
  2. newDiv.setAttribute("class", "test");


i wrzucam to do jakiegos wezla, to pod ie nie "dodaje" klasy "test", opisanej w css, przez co dany div nie jest sformatowany tak jak bym sobie tego zyczył.

To samo dotyczy eventow dodawanych przez setAttribute (np onfocus).

Moje pytanie brzmi, czy jest jakies stanowisko MS dlaczego to nie smiga?
musze przygotowac sprawko z tego projektu a nie moge go oddac dopoki nie ustosunkuje sie do tego problemu(dlaczego pod ie nie dziala tak jak powinno)

Lub czy może istnieja jakies eleganckie metody ominiecia tych bledow.
Przyznaje ze z JS mialem nie duzo do czynienia a jego "zorientowana obiektowosc" mnie przeraza, a raczej smieszy.

bede wdzieczny za pomoc i wskazowki... i wsumie jakby moglby mi ktos lopatologicznie wytluamczyc idee http://www.quirksmode.org/js/events_advanced.html ...

ps. probowalem szukac za pomoca szukajki ale nie znajduje mi wynikow dla "ie css on fly" i podonych zapytan

ps2.
w czym problem? najlepiej spojrzec w ff a potem w ie:
http://iem.pw.edu.pl/~ostrowsb/indywidualny/
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Powiem tak - IE jest tak głupi, że po ludzku do niego gada, a ten wie swoje - bawiłem się ostatnio DOM pod IE i iterowałem pętlą wszystkie elementy w danym obiekcie (chciałem przenieść; removeNode + wstawianie do innego elementu). Nie "łapało" mi ostatniego; a gdy ustawiałem po indeksach numerycznych - sypało błędami.

Rozwiązaniem było innerHTML.

Do czego piję:
Kod
input = document.createElement("input");
input.name = "name"

spróbuj:
Kod
input = document.createElement("input");
input.outerHTML = '<input name="asd" />';
Go to the top of the page
+Quote Post
dem
post
Post #3





Grupa: Zarejestrowani
Postów: 96
Pomógł: 7
Dołączył: 24.01.2006
Skąd: lublin/wawa

Ostrzeżenie: (0%)
-----


Cytat(erix @ 12.06.2009, 16:44:45 ) *
Powiem tak - IE jest tak głupi, że po ludzku do niego gada, a ten wie swoje - bawiłem się ostatnio DOM pod IE i iterowałem pętlą wszystkie elementy w danym obiekcie (chciałem przenieść; removeNode + wstawianie do innego elementu). Nie "łapało" mi ostatniego; a gdy ustawiałem po indeksach numerycznych - sypało błędami.

Rozwiązaniem było innerHTML.

Do czego piję:
Kod
input = document.createElement("input");
input.name = "name"

spróbuj:
Kod
input = document.createElement("input");
input.outerHTML = '<input name="asd" />';


ehh, dopiero teraz znalazlem chwile zeby do tego przysiasc... nie za bardzo rozumiem o co chodzi z outerHTML ;] pogooglowalem, zauwazylem ze outerHTML zwraca "caly znacznik" wraz z innerHTML, ale proba przypisania
Kod
input.outerHTML = "<nowa definicja inputa>";

nie chce zaskoczyc w ie.

No i urodzil sie jeszcze jeden problem odnosnie wykorzystywania anonimowych funkcji przy eventach.
Otóż w moim "projekcie", wstawialem na sztywno (za pomoca setAttribute - a na sztywno bo nie moge "zapisac" referencji do obiektu w html (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) ) dany event do nowo utworzonego "[html object]", ktory mial odrazu ustawione argumenty, dzieki ktorym identyfikowalem obiekt danej klasy... przyklad

aby zmieniac pozycje okien (poprzez przytrzymanie wcisnietej myszki nad tytulem) stosowalem
Kod
newTitle.setAttribute("onmousedown", "moveDivMouseDown(\""+this.etykieta+"\")");

i dzialalo to jak nalezy(w ff oczywiscie), w momencie gdy chce zastosowac
Kod
newTitle.onmousedown = function(){ moveDivMouseDown(this.etykieta) }

pojawia sie problem natury czysto technicznej... w momencie zajscia onmousedown, nie istnieje taka zmienna jak this.etykieta (zmienna identyfikujaca obiekt Okno wsrod wielu okien), bo przeciez w danym momencie nie mam dostepu do zadnego obiektu typu okno, ktory takowa zmienna posiada
co skutkuje brakiem identyfikacji okna po mouse* event w odrebie "okna"

potrzebuje miec ustawione argumenty na sztywno, bo idea projektu to miedzyinnymi obsluga wielu okien naraz.

jakis pomysl jak sobie z tym poradzic?

moze jednak napisac jakies madre zdanie do sprawka ze ie sux (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
chociaz prowadzacy laby tego nie zrozumie... ale to juz inna historia (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

Ten post edytował dem 13.06.2009, 00:45:26
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 10.10.2025 - 03:07