Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
marekhladky
Člen
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
12.11.2014 20:02
Avatar
Odpovídá na marekhladky
Neaktivní uživatel: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
Neaktivní uživatelský účet
Avatar
Odpovídá na Matej
Neaktivní uživatel:12.11.2014 20:26

Co to je ? o_O

Nahoru Odpovědět
12.11.2014 20:26
Neaktivní uživatelský účet
Avatar
Odpovídá na marekhladky
Neaktivní uživatel: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
Neaktivní uživatelský účet
Avatar
Matej
Člen
Avatar
Odpovídá na Neaktivní uživatel
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
12.11.2014 20:34
Avatar
marekhladky
Člen
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 Neaktivní uživatel
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
12.11.2014 20:51
Avatar
marekhladky
Člen
Avatar
Odpovídá na Neaktivní uživatel
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
Člen
Avatar
Odpovídá na Neaktivní uživatel
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
Odpovídá na marekhladky
Neaktivní uživatel:14.11.2014 14:57

A máš tam jquery ?

Nahoru Odpovědět
14.11.2014 14:57
Neaktivní uživatelský účet
Avatar
marekhladky
Člen
Avatar
Odpovídá na Neaktivní uživatel
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
Odpovídá na marekhladky
Neaktivní uživatel: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
Neaktivní uživatelský účet
Avatar
marekhladky
Člen
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.