Hirdetés
- Samsung Galaxy S26 Ultra - fontossági sorrend
- Xiaomi 15 - kicsi telefon nagy energiával
- Youtube Android alkalmazás alternatívák reklámszűréssel / videók letöltése
- Az Oppo Find X9s is elkíséri az Ultrát a globális piacra
- Xiaomi 17 Ultra - jó az optikája
- Qualcomm lapkával és nagyobb teleppel várható a CMF Phone 3 Pro
- Xiaomi 17 - még mindig tart
- iPhone topik
- Poco X8 Pro Max - nem kell ide sem bank, sem akkubank
- Félő, hogy az okosszemüveg a szexuális zaklatók játékszere lesz
-
Mobilarena
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
- Apple iPad 10 64GB pink eladó, újszerű, tokkal és ceruzával
- DeLonghi Magnifica S I Gőzölőkar I Szervizelve I Garancia I Számla I Beszámítás
- Asus TUF Gaming VG258QM 280Hz 0,5ms Full-HD Fast TN
- Full Extrâs Mobil Gamer Csomag: Lenovo Legion Duel 512Gb + kiegészítők!
- ASUS PRIME H270-PRO + Intel Core i7-7700 (CPU + alaplap, LGA1151)
- AKCIÓ! Palit Gaming Pro RTX 3070 Ti 8GB videokártya garanciával hibátlan működéssel
- AKCIÓ! Dell XPS 13 9305 13 FHD üzleti notebook -i5 1135G7 8GB DDR4 512GB SSD Intel IRIS XE W11
- GEN5!!! 14/12GB/s 1TB Gen5x4 NVMe SSD, 1 év gar
- Xiaomi 15 256GB,Újszerű,Dobozaval,12 hónap garanciával
- GIGA AKCIÓ!!! MacBook Air M4 24GB 512GB Garancia! SILVER
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

