Charlie,
Thanks for this.
- I presume it is secure because the iframe acts like a sandbox
- The result will be what is displayed because there is no permitted way
to impact the wiki
I wonder if
- A template can be used rather than the variable? yes the following
worked
<iframe srcdoc={{template}} style="border:none;width:100%;"></iframe>
- Use a TiddlyWiki template for the content of the iframe may need to
wikify first.
Have you played with the* innerwiki plugin* it's similar but different? It
can pass a lot more data to the iframe (I think), in fact can build a whole
wiki inside the iframe.
Speculation;
- Could this be used by students of javascript?
- what kind of Javascript code can be implemented this way?
- Could it access functions defined in the parent wiki eg raw tags?
- I suppose it could if added to the template.
- Could we use iframes in which to publish complete html pages including
javascript as a website development or learning tool.
Regards
Tones
On Monday, 16 August 2021 at 12:39:05 UTC+10 [email protected] wrote:
> Better to keep the HTML readable, drag the attached json with two tiddlers
> into some TiddlyWiki:
>
> On Sunday, August 15, 2021 at 11:27:41 PM UTC-3 Charlie Veniot wrote:
>
>> I don't know what made me think of this.
>>
>> In case this has not been brought up in a while (I doubt this is new to
>> seasoned folk) ...
>>
>> I was thinking: could I use an iFrame to include simple javascript in a
>> tiddler without getting into macros or plugins that enable javascript.
>>
>> And, if I could, then could I set things up so that the iFrame is showing
>> javascript dynamically created by the tiddler ?
>>
>> So here is a way to show a digital clock in TiddlyWiki, for
>> non-programmers who just want to copy and paste javascript code from the
>> web without figuring out how the javascript code works :
>>
>> Put this in a brand new tiddler:
>>
>> *<$vars* *vSrcDoc*={{{ [[<body> <div id="clockDiv"></div> <script>
>> let clockEl = document.getElementById("clockDiv"); function
>> getClockTime() { let date = new Date(); let hr =
>> date.getHours(); let min = date.getMinutes(); let sec =
>> date.getSeconds(); hr = ("0" + hr).slice(-2); min = ("0" +
>> min).slice(-2); sec = ("0" + sec).slice(-2); clockEl.innerHTML =
>> `${hr}:${min}:${sec}`; } setInterval(getClockTime, 1000);
>> </script></body>]] }}}*>*
>> *<iframe* srcdoc=*<<vSrcDoc>>* style="border:none;width:100%;"
>> *></iframe>*
>> *</$vars>*
>>
>> Sneaky sneaky, has me wondering what kind of other fun things could be
>> done...
>>
>
--
You received this message because you are subscribed to the Google Groups
"TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/tiddlywiki/5fd5bd22-1f07-4df2-9f23-40586c8c2d8cn%40googlegroups.com.