We are in the process of migrating this forum. A new space will be available soon. We are sorry for the inconvenience.

Przekierowanie / nowa strona - ciekawy problem?


trejder
25-09-2009, 13:43
Target jest typu deprecated, więc dziękuję - staram się pisać strony zgodne ze standardami.

Problem rozwiązałem, a być może zainteresuje to innych.

U mnie zadziałał kod JavaScript:

Kod:
function DoSubmit(addr, target, method)
{
     var theform = document.forms[0];
     theform.action = addr;
    
     if (target != '_blank' && target != '_new')
      theform.target = target;
     else
      theform.target = Math.round(32000 * Math.random());
     
     theform.method = method;
     theform.submit();

     return true;
}
Bezczelnie zerżnięty ze stron mBanku, skrócony i pozbawiony tego, co mi niepotrzebne.

Aby go wywołać zamiast typowego klawisza typu submit dajemy:

Kod:
Funkcja jest o tyle "wypasiona", że pozwala otwierać wynik działania formularza po "wyskoczeniu" z iframe'a (jak ja chciałem) albo w nowej zakładce / oknie, a robi to dzięki JavaScript, nie stosując parametru target znacznika form, który jest deprecated. Dzięki temu funkcji można używać również w dokumentach typu Strict.

Oczywiście, to nie zadziała wcale, jeśli użytkownik ma wyłączony JavaScript. Ale to już nie mój problem! :P

P.S.: Z zupełnie innej beczki - cosik u Was na forum nie działa powiadamianie o nowych postach. Niby opcja jest zaznaczona, a żadnego powiadomienia o Twojej powyższej wypowiedzi nie dostałem. Do spamu też nie wpadło, a poprzednie przyszło. Pozdr.

trejder
25-09-2009, 08:00
Witam,

Piszę "plugin", czyli kawałek kodu PHP, który odbiorca będzie mógł załączyć sobie na swojej stronie przy pomocy iframe. Musi to być tak rozwiązane, bo docelowa strona, na której plugin ma się pojawiać może być napisana w dowolnym języku - PHP, XHTML, ASP, ColdFusion, etc. - więc iframe wydaje mi się być jedynym rozwiązaniem.

Jednak problem w tym, że plugin, jak tu plugin ma zajmować niewiele miejsca (powiedzmy 400x200 px), aby załączyć go na stronie docelowej. I w momencie uruchomienia będzie w nim formularz do wpisania różnych danych. Lecz wyniki działania tego formularza muszą już koniecznie, bezwzględnie i absolutnie wyświetlać się na nowej, pełnej stronie. Albo otwartej w nowej zakładce (raczej nie nowym oknie, aby pop-up blockery nie zablokowały) albo na przykład przez nadpisanie adresu strony w której plugin był otwarty i wyświetlenie w tym samym oknie / zakładce, ale w pełnych wymiarach.

I prawdę mówiąc - utknąłem. Nie mam pojęcia w jakim języku (JavaScript, czy PHP) to zrobić i jak? Może Ajax / jQuery? Jeśli zrobię redirecta po stronie serwera (w PHP) to i tak cała zawartość zostanie wyświetlona w iframie, czego muszę uniknąć jak ognia. A jeśli miałby to realizować JavaScript na przykład w zdarzeniu OnClick klawisza wysyłającego formularz, to czy ktoś może mi doradzić jak to rozwiązać?

Czy to w ogóle da się rozwiązać?