I have a couple of questions:
Is
<iframe src="/index.php"></iframe>
the same as HTMLIFrameElement ?Why
<iframe src="data:text/html;base64,aHR0cDovL2V4YW1wbGUuY29t" height=1280 width=800></iframe>
works fine, but
a=document.getElementsByTagName('body')[0]; b=document.createElement('iframe'); b.src="data:text/html;base64,aHR0cDovL2V4YW1wbGUuY29t"; a.appendChild(b);
does not work? I mean in DOM HTMLIFrameElement src I could put function with encoded string. Is it possible to encode string only in src variable?
I have a couple of questions:
Is
<iframe src="/index.php"></iframe>
the same as HTMLIFrameElement ?Why
<iframe src="data:text/html;base64,aHR0cDovL2V4YW1wbGUuY29t" height=1280 width=800></iframe>
works fine, but
a=document.getElementsByTagName('body')[0]; b=document.createElement('iframe'); b.src="data:text/html;base64,aHR0cDovL2V4YW1wbGUuY29t"; a.appendChild(b);
does not work? I mean in DOM HTMLIFrameElement src I could put function with encoded string. Is it possible to encode string only in src variable?
- Just putting it here so everyone can see that the whole premise of your question is false. jsfiddle/JkJNH/2 <-- they work exactly the same, and that code is pretty much directly copypasted from your question. – Esailija Commented Dec 19, 2012 at 18:39
3 Answers
Reset to default 3- Yes
- You need to append the iFrame to the document. Like so
document.body.appendChild(b)
The Data URI scheme is for direct embedded data.
data:text/html;base64,aHR0cDovL2V4YW1wbGUuY29t
Means a html page with "http://example."
as its sole content.
You probably want "http://example."
as src
To your point 2: your two methods give the same result.
Live demo: http://jsfiddle/Ft9gh/
a=document.getElementsByTagName('body')[0];
b=document.createElement('iframe');
b.src="data:text/html;base64,aHR0cDovL2V4YW1wbGUuY29t";
a.appendChild(b);