Hi there
I have a couple of pieces of information that I'd like to send to a HTML element to effect what happens on it.
I was wondering how I would do that? I've tried this so far to no avail.
(Sending)
let message1 = $w('#text1').text;
let message2 = $w('#text2').text;
$w("#html1").postMessage({message1});
$w("#html1").postMessage({message2});
(Receiving)
<script type="text/javascript">
window.onmessage = (event) => {
if (event.data) {
message1 = event.data.message1;
message2 = event.data.message2;
}
};
//...
</script>
Any help would be great :)
Thanks in advance!
TA
@thomas
something like this...
//PAGE CODE $w.onReady( () => { $w('#button1').onClick(function () { let message1 = $w("#text1").text; let message2 = $w("#text2").text; $w("#htmlElement1").postMessage({message1: (message1), message2: (message2)}, "*"); }) })
//IFRAME CODE <html> <head> <style> .label { font-family: 'Arial'; } </style> <script type="text/javascript"> // when a message is received from the page code window.onmessage = (event) => { if (event.data) { document.getElementById("message1").innerHTML = event.data.message1; document.getElementById("message2").innerHTML = event.data.message2; } }; </script> </head> <body> <span id="message1" class="label">HTML Label</span> <br/><br/> <span id="message2" class="label">HTML Label</span> </body> </html>
Hi Mike!
Absolutely fantastic, much appreciated!
I've been banging my head against a wall for far too long with that one! I changed it up a bit to suit how I put things together, without your input i'd still be staring at a blank screen!
This is what I ended up:
Page:
let message1 = $w("#text1").text; let message2 = $w("#text2").text; $w("#htmlElement1").postMessage({message1: (message1), message2: (message2)});
Html
window.onmessage = (event) => { if (event.data) { message1 = event.data.message1; message2 = event.data.message2; };
Many thanks again!
Thomas
nudge