Hirdetés
- Luck Dragon: Asszociációs játék. :)
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- sziku69: Fűzzük össze a szavakat :)
- sziku69: Szólánc.
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- Meggyi001: Áram nélkül....méltóság nélkül.....
- MasterDeeJay: Intel Optane M10: mire lehet használni?
- Navaren: Resident Evil Requiem szösszenet
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
-
LOGOUT
JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)
Új hozzászólás Aktív témák
-
btz
addikt
válasz
sztanozs
#7847
üzenetére
Sikerült megoldanom a problémámat, részben a segítségeddel, mivel rájöttem, hogy amit akarok az az inner.HTML-el is megoldható. Ismertem amúgy ezt a lehetőséget, de nem akartam használni, mivel ala nature szerettem volna kiíratni, mert bele akartam rakni egy input mező value értékébe. Ekkor villant be hogy mért ne csinálhatnám az egész input mezőt az innerHTML-el?
A https://website.com/embed/id oldalon ez a script leméri az "all" div magasságát.
<script>
var element = document.getElementById('all');
var magassag = (element.offsetHeight);
var MYGLOBAL = (element.offsetHeight) + 10;
//window.parent.postMessage(['varA', MYGLOBAL], '*');
parent.postMessage({v1: MYGLOBAL}, "*");
</script>Azon az oldalon ahol a https://website.com/embed/id be van szúrva IFRAME ként:
<html lang="en"><head>
<meta charset="utf-8">
<title>EMBED TESZT</title>
</head>
<body>
<iframe src="https://website.com/embed/id" id="iframe" name="iframe" scrolling="no" frameborder="0" style="width: 100%; height: 600px;"></iframe>
<br /><br />
<div id="myDiv">0</div>
<script type="text/javascript" >
function receiveMessage(event) {
var ifrheig = (event.data.v1) + 'px';
document.getElementById("iframe").style.height = ifrheig;
var v1data = (event.data.v1);
var textNode = document.createTextNode(v1data);
document.body.appendChild(textNode);
var innertomydiv = '<input style="width: 100%;" type="text" id="frame" name="frame" value="<iframe src='https://website.com/embed/id' id='iframe' name='iframe' scrolling='no' frameborder='0' style='width: 100%; height: ' + v1data + ';'></iframe>">';
document.getElementById("myDiv").innerHTML = innertomydiv;
}
window.addEventListener("message", receiveMessage, false);
</script>
</body></html>1. Megjelenik az iFrame kezdetben 600px magassággal.
2. Kezdetben a myDiv értéke nulla.
3. A scriptben a receiveMessage funkcióval lekérem a CHILD oldal var MYGLOBAL = (element.offsetHeight) + 10; értékét ami a szülő oldalon van, beleteszem az egészet egy "ifrheig" nevű változóba és ezzel már be tudom állítani az Iframe magasságát (+10px ráhagyás, de ez már a "CHILD" oldali MYGLOBAL értékben alapból benne van)
4. v1data változóba téve ismét lekérem a MYGLOBAL értékét (event.data.v1) amit textNode-ként ki lehet íratni az aktuális helyen. Arra gondoltam, hogy majd ezt teszem bele egy input mezőbe magasságértékként az Iframe kódjával együtt, így majd az user már a kellő magassági értékkel együtt tudja kimásolni azt, nem kell pluszban a scriptkódot is kimásolni , hogy a megfelelő magasságot kapja.
5. Aztán rájöttem, hogy az egészet egy innertomydiv változóval beleíratom input mezőstől a második pontban említett myDiv-be. Így a pléda Iframe alatt megjelenik egy input mezőben az iFrame html kódja, amit könnyen kimásolhat az user és beilleszthet akárhova a megfelelő mérettel. -
válasz
sztanozs
#7847
üzenetére
fn helyesen
function encodeHTML(e){return e.replace(/./g,function(e){return"&#"+e.charCodeAt(0)+";"})}bár ez széttöri az emoji-kat (és vsz más komponens karaktereket is)
igazázából lehet elég ez is:function encodeHTML(e){return e.replace(/[<>]/g,function(e){return"&#"+e.charCodeAt(0)+";"})}
Új hozzászólás Aktív témák
- NVIDIA GeForce RTX 5060 Ti (GB206)
- Szívesen használsz Samsung böngészőt? Immár PC-n is megteheted
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Steam, GOG, Epic Store, Humble Store, Xbox PC Game Pass, Origin Access, uPlay+, Apple Arcade felhasználók barátságos izgulós topikja
- Milyen autót vegyek?
- Xbox Series X|S
- Távcső topik
- AliExpress tapasztalatok
- Fejhallgatós találkozó
- Kötelező frissítésnek számít a Microsoft legújabb csomagja a Windows 11-hez
- További aktív témák...
- Eladó 9800X3D/RX 9070 XT 16GB/32 GB RAM
- GARANCIÁLIS RTX 5060 ACER NITRO GAMER LAPTOP - i7 13620h, RTX 5060
- 27" AOC Q27G3XMN Gaming MiniLED "1100Nit" (Garanciás)
- LOQ 15IRH8 15.6" FHD IPS i5-12450H RTX 4060 16GB 512GB NVMe magyar vbill gar
- 32 Gb Gb G.skill Trident Z Royal Silver 3200 Mhz CL14 Beszámitok! (16 Gb-ra bontom igény szerint)
- AKCIÓ! ÚJ ASUS TUF GAMING Geforce RTX 5080 OC Edition 16GB VRAM Ray Tracing DLSS4
- Xiaomi Mi Note 10 Lite 128GB, Kártyafüggetlen, 1 Év Garanciával
- Apple iPhone 13 128 GB Pink 1 év Garancia Beszámítás Házhozszállítás
- Apple MacBook Pro 14,2 11" i5 16GB 256GB SSD szép állapot - Leírást olvasd el!
- LG 45GX950A-B - 45" Ívelt OLED evo / 5K WUHD / 165Hz-330Hz / NVIDIA G-Sync / FreeSync / DP 2.1
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
