IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
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í.

Diskuze: HTML - Frame - Jak vzít pouze konkrétní div?

Aktivity
Avatar
David
Člen
Avatar
David:15.6.2021 23:43

Ahoj,
Řekněme, že bych chtěl z nějaké stránky použít pouze její část (div) a vložit ji na svoji:
Například div "kurzovni-listek" z idnes.cz (je to jen příkald).
Jak bych to měl v kódu specifikovat?
Děkuji

<iframe src="https://www.idnes.cz">
</iframe>
 
Odpovědět
15.6.2021 23:43
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:16.6.2021 7:47

Tak pouzijes php file_get_contents. Nebo si kurzovni listek preformatujes sam pomoci js (z csv nebo json formatu). Vlajecky se daji sehnat free. A nebo muzes pouzit jejich script.

google = cnb kurzovni listek javascript
https://www.kurzy.cz/…-men-cnb.htm

<!--kurzy start -->
<div id="kurzy_main" style="padding:2px;text-align:center;">
<center>
<div id="kurzy_head" style="white-space: nowrap;">
<a href="https://www.kurzy.cz/"
title="Kurzy - kurzy měn, akcií, hypotéky"><img loading="lazy"
src="https://data.kurzy.cz/export/kurzy-125.gif"
style="border:0px" alt="" /></a><br />
<a href="https://www.kurzy.cz/kurzy-men/"
title="Kurzy měn, kurzovní lístek ČNB Česká národní banka"
id="kurzy_datum">Kurzy ČNB</a>
</div>
<table style="width:125px;" id="k__t">
<tr>
<td nowrap="nowrap"><a href="https://www.kurzy.cz/kurzy-men/nejlepsi-kurzy/USD-americky-dolar/" id="k__USD" title="americký dolar, USA, USD - nejlepší kurzy bank, kurzy ČNB">USD</a></td>
<td><img loading="lazy" src="https://img1.kurzy.cz/i/flag/USD.gif" alt="Vlajka meny USD" /></td>
<td nowrap="nowrap" style="text-align: right;" id="kk__USD"></td>
<td style="text-align: right;"><img loading="lazy" src="https://img.kurzy.cz/i/flag/arrU.GIF" alt="změna" id="kz__USD" style="border:0" /></td>
</tr><tr>
<td nowrap="nowrap"><a href="https://www.kurzy.cz/kurzy-men/nejlepsi-kurzy/GBP-britska-libra/" id="k__GBP" title="britská libra, Británie, GBP - nejlepší kurzy bank, kurzy ČNB">GBP</a></td>
<td><img loading="lazy" src="https://img1.kurzy.cz/i/flag/GBP.gif" alt="Vlajka meny GBP" /></td>
<td nowrap="nowrap" style="text-align: right;" id="kk__GBP"></td>
<td style="text-align: right;"><img loading="lazy" src="https://img.kurzy.cz/i/flag/arrU.GIF" alt="změna" id="kz__GBP" style="border:0" /></td>
</tr><tr>
<td nowrap="nowrap"><a href="https://www.kurzy.cz/kurzy-men/nejlepsi-kurzy/EUR-euro/" id="k__EUR" title="euro, EMU EURO, EUR - nejlepší kurzy bank, kurzy ČNB">EUR</a></td>
<td><img loading="lazy" src="https://img1.kurzy.cz/i/flag/EUR.gif" alt="Vlajka meny EUR" /></td>
<td nowrap="nowrap" style="text-align: right;" id="kk__EUR"></td>
<td style="text-align: right;"><img loading="lazy" src="https://img.kurzy.cz/i/flag/arrU.GIF" alt="změna" id="kz__EUR" style="border:0" /></td>
</tr><tr>
<td nowrap="nowrap"><a href="https://www.kurzy.cz/kurzy-men/nejlepsi-kurzy/HRK-chorvatska-kuna/" id="k__HRK" title="chorvatská kuna, Chorvatsko, HRK - nejlepší kurzy bank, kurzy ČNB">HRK</a></td>
<td><img loading="lazy" src="https://img1.kurzy.cz/i/flag/HRK.gif" alt="Vlajka meny HRK" /></td>
<td nowrap="nowrap" style="text-align: right;" id="kk__HRK"></td>
<td style="text-align: right;"><img loading="lazy" src="https://img.kurzy.cz/i/flag/arrU.GIF" alt="změna" id="kz__HRK" style="border:0" /></td>
</tr><tr>
<td nowrap="nowrap"><a href="https://www.kurzy.cz/kurzy-men/nejlepsi-kurzy/JPY-japonsky-jen/" id="k__JPY" title="japonský jen, Japonsko, JPY - nejlepší kurzy bank, kurzy ČNB">JPY</a></td>
<td><img loading="lazy" src="https://img1.kurzy.cz/i/flag/JPY.gif" alt="Vlajka meny JPY" /></td>
<td nowrap="nowrap" style="text-align: right;" id="kk__JPY"></td>
<td style="text-align: right;"><img loading="lazy" src="https://img.kurzy.cz/i/flag/arrU.GIF" alt="změna" id="kz__JPY" style="border:0" /></td>
</tr><tr>
<td nowrap="nowrap"><a href="https://www.kurzy.cz/kurzy-men/nejlepsi-kurzy/CAD-kanadsky-dolar/" id="k__CAD" title="kanadský dolar, Kanada, CAD - nejlepší kurzy bank, kurzy ČNB">CAD</a></td>
<td><img loading="lazy" src="https://img1.kurzy.cz/i/flag/CAD.gif" alt="Vlajka meny CAD" /></td>
<td nowrap="nowrap" style="text-align: right;" id="kk__CAD"></td>
<td style="text-align: right;"><img loading="lazy" src="https://img.kurzy.cz/i/flag/arrU.GIF" alt="změna" id="kz__CAD" style="border:0" /></td>
</tr><tr>
<td nowrap="nowrap"><a href="https://www.kurzy.cz/kurzy-men/nejlepsi-kurzy/PLN-polsky-zloty/" id="k__PLN" title="polský zlotý, Polsko, PLN - nejlepší kurzy bank, kurzy ČNB">PLN</a></td>
<td><img loading="lazy" src="https://img1.kurzy.cz/i/flag/PLN.gif" alt="Vlajka meny PLN" /></td>
<td nowrap="nowrap" style="text-align: right;" id="kk__PLN"></td>
<td style="text-align: right;"><img loading="lazy" src="https://img.kurzy.cz/i/flag/arrU.GIF" alt="změna" id="kz__PLN" style="border:0" /></td>
</tr><tr>
<td nowrap="nowrap"><a href="https://www.kurzy.cz/kurzy-men/nejlepsi-kurzy/RUB-rusky-rubl/" id="k__RUB" title="ruský rubl, Rusko, RUB - nejlepší kurzy bank, kurzy ČNB">RUB</a></td>
<td><img loading="lazy" src="https://img1.kurzy.cz/i/flag/RUB.gif" alt="Vlajka meny RUB" /></td>
<td nowrap="nowrap" style="text-align: right;" id="kk__RUB"></td>
<td style="text-align: right;"><img loading="lazy" src="https://img.kurzy.cz/i/flag/arrU.GIF" alt="změna" id="kz__RUB" style="border:0" /></td>
</tr><tr>
<td nowrap="nowrap"><a href="https://www.kurzy.cz/kurzy-men/nejlepsi-kurzy/CHF-svycarsky-frank/" id="k__CHF" title="švýcarský frank, Švýcarsko, CHF - nejlepší kurzy bank, kurzy ČNB">CHF</a></td>
<td><img loading="lazy" src="https://img1.kurzy.cz/i/flag/CHF.gif" alt="Vlajka meny CHF" /></td>
<td nowrap="nowrap" style="text-align: right;" id="kk__CHF"></td>
<td style="text-align: right;"><img loading="lazy" src="https://img.kurzy.cz/i/flag/arrU.GIF" alt="změna" id="kz__CHF" style="border:0" /></td>
</tr><tr>
<td nowrap="nowrap"><a href="https://www.kurzy.cz/akcie-cz/burza/" id="k__PX50" title="Burza cenných papírů Praha, PX 50, akcie CZ online">PX50</a></td>
<td><img loading="lazy" src="https://img1.kurzy.cz/i/flag/PX50.gif" alt="Vlajka meny PX50" /></td>
<td nowrap="nowrap" style="text-align: right;" id="kk__PX50"></td>
<td style="text-align: right;"><img loading="lazy" src="https://img.kurzy.cz/i/flag/arrU.GIF" alt="změna" id="kz__PX50" style="border:0" /></td>
</tr>
</table>
</center>
</div>
<script src="https://data.kurzy.cz/export/kurzy-cs.js" type="text/javascript"> </script>

<!--kurzy end -->
 
Nahoru Odpovědět
16.6.2021 7:47
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:16.6.2021 7:54

Nejlepsi je si to stahnout primo z CNB a javascriptem zformatovat do tabulky. U cizich kodu totiz nikdy nevis, co tam muzou mit navic.

https://www.cnb.cz/cs/financni-trhy/devizovy-trh/kurzy-devizoveho-trhu/kurzy-devizoveho-trhu/denni_kurz.txt;jsessionid=1AB6CE9623B812CD01F976B3D5E1D57F?date=15.06.2021

15.06.2021 #115
země|měna|množství|kód|kurz
Austrálie|dolar|1|AUD|16,169
Brazílie|real|1|BRL|4,145
Bulharsko|lev|1|BGN|13,013
Čína|žen-min-pi|1|CNY|3,284
Dánsko|koruna|1|DKK|3,422
EMU|euro|1|EUR|25,450
Filipíny|peso|100|PHP|43,723
Hongkong|dolar|1|HKD|2,707
Chorvatsko|kuna|1|HRK|3,398
Indie|rupie|100|INR|28,657
Indonesie|rupie|1000|IDR|1,477
Island|koruna|100|ISK|17,289
Izrael|nový šekel|1|ILS|6,481
Japonsko|jen|100|JPY|19,095
Jižní Afrika|rand|1|ZAR|1,526
Kanada|dolar|1|CAD|17,243
Korejská republika|won|100|KRW|1,879
Maďarsko|forint|100|HUF|7,228
Malajsie|ringgit|1|MYR|5,105
Mexiko|peso|1|MXN|1,052
MMF|ZPČ|1|XDR|30,258
Norsko|koruna|1|NOK|2,524
Nový Zéland|dolar|1|NZD|14,981
Polsko|zlotý|1|PLN|5,626
Rumunsko|leu|1|RON|5,167
Rusko|rubl|100|RUB|29,174
Singapur|dolar|1|SGD|15,842
Švédsko|koruna|1|SEK|2,523
Švýcarsko|frank|1|CHF|23,351
Thajsko|baht|100|THB|67,505
Turecko|lira|1|TRY|2,457
USA|dolar|1|USD|21,017
Velká Británie|libra|1|GBP|29,542
 
Nahoru Odpovědět
16.6.2021 7:54
Avatar
David
Člen
Avatar
David:17.6.2021 15:19

Díky,
Bylo to jen jako příklad.
Zajímalo by mně, jestli to jde celé vzít, pomocí toho frame?

 
Nahoru Odpovědět
17.6.2021 15:19
Avatar
Peter Mlich
Člen
Avatar
Odpovídá na David
Peter Mlich:17.6.2021 15:42

Frame, jako ajax, ma bezpecnostni omezeni pro stranky z localniho serveru.

  • Pokud budes mit stranku peta.cz a ve frame google.com, tak se k obsahu nedostanes, javascriptem.
  • Pokud budes mit stranku peta.cz a ve frame peta.cz?program­.php?page=goo­gle.com, tak tahas obsah ze sve stranky, php kod pouzijes echo file_get_conten­t($_GET['page']);. Pak si muzes do framu chodit. Ale base-url pro html bude peta.cz. Cli, vsechny odkazy zacinajici '/' muzou byt spatne
  • Pokud budes mit peta.cz a frama peta.cz/cokoliv, tak se tez do framu dostanes, javascriptem

Reseni se da vygooglovat.
Ale, kdyz uz pouzivas cizi url a musis pouzivat php, tak misto frame+program.php muzes kod vlozit primo pres php do te stranky.

--- index.php ---

nejaky html kod...
<?php echo file_get_content('google.com');?>
nejaky html kod...
 
Nahoru Odpovědět
17.6.2021 15:42
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:17.6.2021 15:50

Jakoze, pokud se do frame dostanes, tak se k tomu dostenes asi nejak takto (ale radeji si to vygoogluj, tohle je tak +- preklep, chyba)

js: frame_body = window.document.getElementById('mujframe').frame_content.getElementByTagName('body')[0]; content = frame_body.getElementByTagName('div')[0].innerHTML; frame_body.innerHTML = content;
php: $content = file_get_content('google.com'); $content = preg_replace('~^.*<div~', '<div', $content); $content = preg_replace('~</div>.*$~', '</div>', $content);

Ale ja se obavam, ze se chystas hackovat cizi stranky, prepisovat jejich kod. Nebo neco podobneho. To ti bohuzel prohlizec nedovoli. Proto se to da resit jen pres to php.

 
Nahoru Odpovědět
17.6.2021 15:50
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:17.6.2021 15:53

Takhle, muzu ti udelat demo kod, kdyz to spustim ze sveho serveru. Jestli to teda chces nejak takhle lokalne pouzivat. S tou druhou moznosti, jak to udelat primo, to ti neporadi, to proste nejde. Nebo, nemelo by to jit. Ale hackeri si vzdy najdou nejakou klicku :)

 
Nahoru Odpovědět
17.6.2021 15:53
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:18.6.2021 7:51

nebo by stacilo mozna googlovat...
google = site:jsfiddle.net iframe content edit

pomoci js-jquery https://jsfiddle.net/sandy98/dWpvf/

<div class="main">
    <iframe id="iframe1">
    <iframe>
</div>
<script>
$('#iframe1').contents().find('html').html("<h1 style='text-align: center;'>This IS an iframe</h1>");
</script>

pomoci js https://jsfiddle.net/jonathansampson/d4xFG/
<iframe id="f" src="javascript:'&lt;p&gt;foo&lt;/p&gt;'"></iframe>
<script type="text/javascript">
setTimeout(function(){
    var frame = document.getElementById("f");
    var cntnt = frame.contentWindow.document;
    var parag = cntnt.getElementsByTagName("p")[0];
    console.log( parag );
}, 1000);
</script>

text editor v iframe (opet jquery) http://jsfiddle.net/Kritika/qt9j9rjm/
<script>
var html = $("#textEditor").contents().find("body").html(); // nebudu vypisovat cele, ale k html kodu iframe se dostavaji takto
</script>

Tady si kresli svg do iframe a mimo nej http://jsfiddle.net/QYxeu/3/
<script>
// NON-IFRAME:
document.body.appendChild(makeSVG(document));
// IFRAME:
var iframe = document.createElement('iframe');

iframe.width = 200;
iframe.height = 200;
document.body.appendChild(iframe);
var win = iframe.contentWindow;
var iframeDocument = iframe.contentDocument;
iframeDocument.open();
iframeDocument.close();
iframeDocument.body.appendChild(makeSVG(iframeDocument));

function makeSVG(doc) {

    console.log(doc, doc.body);

    function create(n) {
        return doc.createElementNS('http://www.w3.org/2000/svg', n);
    }
    var svg = create('svg');
    svg.setAttribute('width', 200);
    svg.setAttribute('height', 200);
    var defs = svg.appendChild(create('defs'));

    var path = create('path');
    path.setAttribute('d', 'M 10 10 l 100 100 l -100 0 l 0 -100');
    path.setAttribute('stroke', 'red');
    path.setAttribute('stroke-width', 2);

    var grad = create('linearGradient');
    grad.setAttribute('id', 'foo');
    var stop = grad.appendChild(create('stop'));
    stop.setAttribute('offset', '0%');
    stop.setAttribute('stop-color', 'red');
    stop.setAttribute('stop-opacity', 1);
    var stop = grad.appendChild(create('stop'));
    stop.setAttribute('offset', '100%');
    stop.setAttribute('stop-color', 'yellow');
    stop.setAttribute('stop-opacity', 1);
    defs.appendChild(grad);
    svg.appendChild(path);
    path.setAttribute('fill', 'url(#foo)');
    return svg;
}
</script>

google = site:jsfiddle.net request content download and show

po kliknuti na odkaz to stahne obrazek a nabidne uzivateli save-as https://jsfiddle.net/hs7dmkxm/
<script>
req.open('get', 'https://httpbin.org/image');
</script>
Vsimni si, ze to stahuji asi z externiho serveru, jenze na nem musis mit nastavene povoleni ke stazeni a browser ti ale mozna nedovoli manipulovat s obsahem

google = site:jsfiddle.net request content download and show html file
 
Nahoru Odpovědět
18.6.2021 7:51
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 8 zpráv z 8.