Avatar
marekhladky
Redaktor
Avatar
marekhladky:12.11.2014 17:58

Ahoj, mám webovou aplikaci psanou v ASP.NET, kterou jsem převzal na dodělání. Drtivá většina stránek se otevírá do nového okna pomocí JavaScriptu. A já bych potřeboval aby se vše otvíralo v jednom, nejlépe v iframu. Protože je aplikace psaná dosti nelogicky a už jsem strávil spoustu času nad tím jak to spravit nějak pěkně. Tak bych chtěl najít způsob jak někde přesměrovat všechna nová okna do toho iframu. Pokud by mi někdo dokázal poradit nebo alespoň nasměrovat byl bych mu moc vděčný.

 
Odpovědět 12.11.2014 17:58
Avatar
Matej
Člen
Avatar
Matej:12.11.2014 20:02

Nove okno sa vytvara pomocou window.open(url) , takze ak to chces spravit ako si napisal (cez iframe) zmen funkciu ktora otvara nove okno , na funckiu ktora zmeni src iframe napr:

<iframe id="iframe"></iframe>
<a href="blabla.com"><p onclick="zmensa()">click</p></a>
function zmensa()

{
event.preventDefault();
var iframe=document.getElementById("iframe");
iframe.src=event.target.parentNode.href
}
Editováno 12.11.2014 20:05
 
Nahoru Odpovědět  ±0 12.11.2014 20:02
Avatar
Fredep
Redaktor
Avatar
Odpovídá na marekhladky
Fredep:12.11.2014 20:24

Jsi si jistý, že se to otevírá pomocí javascriptu? V HTML stačí každému odkazu nastavit atribut target="_blank" který způsobí otevření do nového okna. Pokud je smažeš, vše by se mělo otevřít v aktuálním.

Pracovat s rámy bych ti nedoporučoval, neboť se to v dnešní době nepoužívá a při přechodu na jinou stránku v rámci se nemění URL adresa, takže nemůžeš někomu poslat odkaz... ;)

Nahoru Odpovědět 12.11.2014 20:24
Týmová práce je důležitá proto, aby bylo možno obvinit z neúspěchu někoho jiného.
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na Matej
Daniel Vítek:12.11.2014 20:26

Co to je ? o_O

 
Nahoru Odpovědět 12.11.2014 20:26
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na marekhladky
Daniel Vítek:12.11.2014 20:29

Přes jQuery:

$("a").click(function(e){
  e.preventDefault();
  $("#iframe").attr("src", $(this).attr("href"));
});
 
Nahoru Odpovědět 12.11.2014 20:29
Avatar
Matej
Člen
Avatar
Odpovídá na Fredep
Matej:12.11.2014 20:34

" Drtivá většina stránek se otevírá do nového okna pomocí JavaScriptu."
Ja som sa riadil podla toho :D

 
Nahoru Odpovědět  ±0 12.11.2014 20:34
Avatar
marekhladky
Redaktor
Avatar
marekhladky:12.11.2014 20:40

Děkuji za odpovědi vyzkouším a napíšu výsledek. Já vím že tohle řešení není nejvhodnější, ale ze všech možností mi tohle zatím vypadlo jako nejlepší. To že se nebude měnit URL nevadí, spíš je to možná k dobru.

 
Nahoru Odpovědět 12.11.2014 20:40
Avatar
Matej
Člen
Avatar
Odpovídá na Daniel Vítek
Matej:12.11.2014 20:51

Je to prakticky to iste co si postol ty len ja som vlozil <p> tag do <a> tagu (od html 5 je to mozne , opravte ma ak sa mylim :D)

//fredep myslel som ze odpovedas na moj komentar

 
Nahoru Odpovědět  ±0 12.11.2014 20:51
Avatar
marekhladky
Redaktor
Avatar
Odpovídá na Daniel Vítek
marekhladky:14.11.2014 10:34

Ahoj, tak to vypadá že to částečně funguje, ale stránka se zobrazí v nové záložce místo nového okna a bohužel se nenačte. Muže na to mít vliv že je v odkazu postBack ? Odkaz viz. níže.

<a class="ctl00_cntMain_ctl00_FfSrna_SrnaId_treemenu_0 ctl00_cntMain_ctl00_FfSrna_SrnaId_treemenu_1" href="javascript:__doPostBack(&#39;ctl00$cntMain$ctl00$FfSrna$SrnaId$treemenu&#39;,&#39;s1054&#39;)" onclick="TreeView_SelectNode(ctl00_cntMain_ctl00_FfSrna_SrnaId_treemenu_Data, this,&#39;ctl00_cntMain_ctl00_FfSrna_SrnaId_treemenut0&#39;);" id="ctl00_cntMain_ctl00_FfSrna_SrnaId_treemenut0">1         Vlastnosti</a>
 
Nahoru Odpovědět 14.11.2014 10:34
Avatar
marekhladky
Redaktor
Avatar
Odpovídá na Daniel Vítek
marekhladky:14.11.2014 11:52

Tak zpět, nefunguje to. To se zase objevila chyba někde, jinde že to vyskakuje v nové záložce a navíc se to nenačte.

 
Nahoru Odpovědět 14.11.2014 11:52
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na marekhladky
Daniel Vítek:14.11.2014 14:57

A máš tam jquery ?

 
Nahoru Odpovědět 14.11.2014 14:57
Avatar
marekhladky
Redaktor
Avatar
Odpovídá na Daniel Vítek
marekhladky:14.11.2014 15:28

Jo mám už jsem přišel na to kde byla chyba. No nicméně to pořád ještě nefunguje :-D.

Pokud jsem ten kód dobře pochopil. Tak to udělá to, že vyhledá tag iframe a atributu src nastaví aktuální odkaz ?

A to pro ten můj případ nejde. Protože ten iframe není na té stránce z které klikám na ten odkaz.

Pokud to není jasné, tak jak budu doma tak to rozepíšu nějak srozumitelněji.

 
Nahoru Odpovědět 14.11.2014 15:28
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na marekhladky
Daniel Vítek:14.11.2014 15:31

1. Ten kód vyhledá element s ID "iframe", to znamená že v případu iframu to je

<iframe id="iframe"></iframe>

2. Chápu správně že chceš otevřít odkaz v iframu, který je na jiné stránce ?

 
Nahoru Odpovědět 14.11.2014 15:31
Avatar
marekhladky
Redaktor
Avatar
marekhladky:14.11.2014 15:44

Tak to jsem pochopil skoro správně, ale na situaci to nic moc nemění.

Udělal jsem náčrt jak to asi funguje.

 
Nahoru Odpovědět 14.11.2014 15:44
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 14 zpráv z 14.