-
11. Data: 2009-06-05 18:45:52
Temat: Re: Submit formularza w IE8
Od: porneL <n...@p...net>
On Thu, 04 Jun 2009 00:41:45 +0100, Marek <m...@s...interia.pl>
wrote:
>> Jak nie można jak można? Ja mam pełno stron kompletnie zależnych od
>> <form action=""> i jeszcze nikt mi nie płakał.
>
> Gdy mam wyłączony tryb zgodności w IE8 i submituję formularz, w którym
> action="" to wtedy następuje przekierowanie identyczne jak dla
> action="/" - czyli do dokumentu domyślnego.
U mnie działa, nawet w trybie "tym razem serio na słowo harcerza"
standardów. Musisz mieć buga gdzieś indziej.
--
http://pornel.net
this.author = new Geek("porneL");
-
12. Data: 2009-06-05 19:40:19
Temat: Re: Submit formularza w IE8
Od: ethanak <s...@b...pl>
Dnia Fri, 05 Jun 2009 19:45:52 +0100, porneL napisał(a):
[...]
>> Gdy mam wyłączony tryb zgodności w IE8 i submituję formularz, w którym
>> action="" to wtedy następuje przekierowanie identyczne jak dla
>> action="/" - czyli do dokumentu domyślnego.
>
> U mnie działa, nawet w trybie "tym razem serio na słowo harcerza"
> standardów. Musisz mieć buga gdzieś indziej.
Może to głupie ale miałem coś podobnego - efekt radosnej działalności
programistego który na sztywno wwalił:
header("Location: ".$_SERVER('REQUEST_URI'))
(nie, nie pytaj mnie o co mu chodziło, on już pracuje dla konkurencji)
ethanak
--
mailto=window.atob('ZXRoYW5ha0Bwb2xpcC5jb20=');
http://milena.polip.com/ - nie czekam na Ivo!
-
13. Data: 2009-06-06 00:16:53
Temat: Re: Submit formularza w IE8
Od: "Marek" <m...@s...interia.pl>
> Niekoniecznie. W każdym razie nikt dotąd nie potwierdził występowania
> twojego problemu, więc ja bym zaczął od upewnienia się, czy rzeczywiście
> postawiłeś właściwą diagnozę.
Witaj,
Zbadałem za Twoją uwagą wszystko raz jeszcze. Już wiem co jest grane. Otóż
problem tkwi w obsłudze JS formularza. Otóż okazuje się, że odczyt pustego
pola action w IE8 zawiera ciąg znaków http://domena/katalog/ !!!
Gdy włączymy tryb zgodności to JS daje nam pusty string - tak jak w innych
przeglądarkach. Procedura doklejania parametrów do action pobierała jego
poprzednią wartość i uzupełniała URL o dodatkowe zmienne GET. W efekcie
action zamiast być ustawianym na "?xxx=yyy" został ustawiony na
"http://domena/katalog/?xxx=yyy" i wszystko się rypało - przekierowanie było
na index.php zamiast pozostać w pliku z formularzem. Gdy przypiszę
bezpośrednio, bez analizy zawartości coś do action:
obj.action="?xxx=zzz";
To odczyt tego pola będzie zaskakująco inny:
http://domena/katalog/nazwapliku.php?xxx=yyy
IE8 dopisał sobie sam nazwę pliku do URL. Podsumowując: gdy pole action jest
puste
to dwie poniższe operacje w JS dla IE8 nie są sobie równoważne:
save=obj.action;
obj.action=save+"?xxx=zzz";
oraz
obj.action="?xxx=zzz";
gdyż save nie zawiera pustego stringu mimo iż action jest pusty. Super
pop... co?
--
Pozdrawiam,
Marek
-
14. Data: 2009-06-06 00:18:23
Temat: Re: Submit formularza w IE8
Od: "Marek" <m...@s...interia.pl>
Zerknijcie co Arturowi odpisałem. Znalazłem niespodziewaną przyczynę takiego
zachowania.
--
Pozdrawiam,
Marek
-
15. Data: 2009-06-06 08:35:44
Temat: Re: Submit formularza w IE8
Od: Artur Muszyński <a...@u...wytnijto.com.pl>
Marek pisze:
> obj.action="?xxx=zzz";
"Jeśli nie wiesz, czy dobrze używasz formularzy, to poszukaj ,,submit()"
-- jeśli masz go w kodzie, to źle używasz formularzy."
porneL, 6-14
Zaiste, prorocze ;-)
artur
-
16. Data: 2009-06-06 08:44:54
Temat: Re: Submit formularza w IE8
Od: "Marek" <m...@s...interia.pl>
> Zaiste, prorocze ;-)
To nie o submit() chodzi lecz o fałszowaną zawartość action. To się dzieje
nawet w tych miejscach, gdzie submitu nie stosuję.
-
17. Data: 2009-06-06 08:54:03
Temat: Re: Submit formularza w IE8
Od: Colin <m...@g...com>
Marek wrote:
> save=obj.action;
save = obj.getAttribute('action');
-
18. Data: 2009-06-06 12:55:17
Temat: Re: Submit formularza w IE8
Od: porneL <n...@p...net>
On Sat, 06 Jun 2009 01:16:53 +0100, Marek <m...@s...interia.pl>
wrote:
> obj.action="?xxx=zzz";
>
> To odczyt tego pola będzie zaskakująco inny:
>
> http://domena/katalog/nazwapliku.php?xxx=yyy
>
> IE8 dopisał sobie sam nazwę pliku do URL. Podsumowując: gdy pole action
> jest puste
> to dwie poniższe operacje w JS dla IE8 nie są sobie równoważne:
>
> save=obj.action;
> obj.action=save+"?xxx=zzz";
>
> oraz
>
> obj.action="?xxx=zzz";
>
> gdyż save nie zawiera pustego stringu mimo iż action jest pusty. Super
> pop... co?
No super, że *poprawili buga* i twój kod sypie się na *prawidłowym* DOM.
<form action=""> vs form.action powinno zachowywać się analogicznie do <a
href=""> vs a.href i wygląda na to, że IE8 to wreszcie robi poprawnie.
Jeśli chcesz niezmienioną wartość atrybutu, to używaj getAttribute().
http://www.whatwg.org/specs/web-apps/current-work/mu
ltipage/forms.html#dom-fs-action
> The action, method, enctype, and target DOM attributes must reflect the
> respective content attributes of the same name.
http://www.whatwg.org/specs/web-apps/current-work/mu
ltipage/infrastructure.html#reflecting-content-attri
butes-in-dom-attributes
> If a reflecting DOM attribute is a DOMString attribute whose content
> attribute is defined to contain a URL, then on getting, the DOM
> attribute must resolve the value of the content attribute relative to
> the element and return the resulting absolute URL
--
http://pornel.net
this.author = new Geek("porneL");
-
19. Data: 2009-06-06 16:29:14
Temat: Re: Submit formularza w IE8
Od: "Marek" <m...@s...interia.pl>
> No super, że *poprawili buga* i twój kod sypie się na *prawidłowym* DOM.
Pewnie tak własnie jest :-)
No to jestem zaskoczony co do zmiany polityki M$. Czyżby M$ stał się liderem
w zwalczaniu bugów? Chyba po raz pierwszy raz Mozilla została w tyle za IE
bo sama ma tego buga :-)
Wiesz ... generalnie jakoś trzeba egzystować, nawet gdy są bugi w
przeglądarkach...
> Jeśli chcesz niezmienioną wartość atrybutu, to używaj getAttribute().
Dziękuję za pomoc w rozwiązaniu problemu :-)
-
20. Data: 2009-06-06 16:29:36
Temat: Re: Submit formularza w IE8
Od: "Marek" <m...@s...interia.pl>
Dziękuję, pomogło ! :-)
--
Pozdrawiam,
Marek