虚拟 iframe 应用演示
<style>#maindiv { margin: 20px auto; width: 600px; height: 400px; position: relative; }
.ifrbox { position: absolute; width: 100%; height: 380px; }
.btnwrap { position: absolute; width: 100%; height: 20px; bottom: 0; text-align: center; }
</style>
<div id="maindiv">
<div id="ifrpa" class="ifrbox"></div>
<div class="btnwrap">
<button id="getContent" type="button" value="get">获取虚拟iframe的内容</button>
</div>
</div>
<script>
//创建虚拟iframe元素并设置必要属性、为其建立一个textarea标签
var iframe = document.createElement('iframe');
iframe.scrolling = 'no';
iframe.scrolling = 'no';
iframe.width = '100%';
iframe.height = '100%';
iframe.style.cssText += 'border: 0; outline: 0;';
iframe.srcdoc = '<textarea style="width: 98%; height: 340px; padding: 6px">I\'m an iframe.</textarea>';
ifrpa.appendChild(iframe);
//获取iframe内textarea的值
getContent.onclick = () => {
var tbox = iframe.contentWindow.document.body.querySelector('textarea');
if(tbox) {
console.log(tbox.value);
tbox.focus();
}else{
console.log('iframe里不存在 textarea 标签');
}
};
</script>
代码:
<style>
#maindiv { margin: 20px auto; width: 600px; height: 400px; position: relative; }
.ifrbox { position: absolute; width: 100%; height: 380px; }
.btnwrap { position: absolute; width: 100%; height: 20px; bottom: 0; text-align: center; }
</style>
<div id="maindiv">
<div id="ifrpa" class="ifrbox"></div>
<div class="btnwrap">
<button id="getContent" type="button" value="get">获取虚拟iframe的内容</button>
</div>
</div>
<script>
//创建虚拟iframe元素并设置必要属性、为其建立一个textarea标签
var iframe = document.createElement('iframe');
iframe.scrolling = 'no';
iframe.scrolling = 'no';
iframe.width = '100%';
iframe.height = '100%';
iframe.style.cssText += 'border: 0; outline: 0;';
iframe.srcdoc = '<textarea style="width: 98%; height: 340px; padding: 6px">I\'m an iframe.</textarea>';
ifrpa.appendChild(iframe);
//获取iframe内textarea的值
getContent.onclick = () => {
var tbox = iframe.contentWindow.document.body.querySelector('textarea');
if(tbox) {
console.log(tbox.value);
tbox.focus();
}else{
console.log('iframe里不存在 textarea 标签');
}
};
</script>
一楼的效果里,文本框是 iframe 框架带进来的,但这个 iframe 是虚拟的,并没有从外部引入 src 所指向的目标文档。
虚拟的 iframe 好处多多,例如,解决了跨域问题,即使不开启web服务,也可以对 iframe 进行随意操作。
而 iframe 很多时候是 web 开发必须的,例如做一个文本编辑器,使用 iframe 可以保留双焦点,又例如同步运行或演示元素有 id 的特定内容,由于 iframe 与引入者是隔离的,克隆到 iframe 或从 iframe 克隆过来的内容不会受到 id 同名的影响,能正常运行和演示。
一楼的演示,可以修改文本框的内容,然后点击底下的按钮,再按F12查看控制台的信息
看了几眼这个烧脑。。。支持一下先溜了。。
{:4_173:}点完F12直接晕了。。。古得小白。 花飞飞 发表于 2024-10-23 22:23
点完F12直接晕了。。。古得小白。
信息放在控制台里 花飞飞 发表于 2024-10-23 22:22
看了几眼这个烧脑。。。支持一下先溜了。。
88 运行一下,在控制台就能看到虚拟 iframe里的内容了吧。
虽然知道了这个还不清楚能派什么用途{:4_173:} 红影 发表于 2024-10-24 10:02
运行一下,在控制台就能看到虚拟 iframe里的内容了吧。
虽然知道了这个还不清楚能派什么用途
三楼不是讲了吗 马黑黑 发表于 2024-10-23 23:08
信息放在控制台里
控制台好象作用很大,有朋友找视频地址跑到这里来找的。。。
我学了一下,当时也能找到隐起来的视频地址,但不理解,隔阵子不用就忘了。。。{:4_173:} 马黑黑 发表于 2024-10-23 23:09
88
晒了一下,脑壳嗡嗡的,是真得白一会了{:4_170:} 花飞飞 发表于 2024-10-24 18:38
晒了一下,脑壳嗡嗡的,是真得白一会了
白白 马黑黑 发表于 2024-10-24 11:55
三楼不是讲了吗
看了啊,不过没有具体的例子,也没怎么看明白,只知道有跨域等作用{:4_173:} 红影 发表于 2024-10-24 22:04
看了啊,不过没有具体的例子,也没怎么看明白,只知道有跨域等作用
具体例子就在一楼 马黑黑 发表于 2024-10-24 22:46
具体例子就在一楼
我输入了几个文字,然后F12里看到的就是这几个字{:4_173:} 红影 发表于 2024-10-24 23:08
我输入了几个文字,然后F12里看到的就是这几个字
你输入的,按F12能看到的,就是实现目的了:能动态获取虚拟 iframe 的内容 马黑黑 发表于 2024-10-24 23:29
你输入的,按F12能看到的,就是实现目的了:能动态获取虚拟 iframe 的内容
原来是这样{:4_204:} I'm an iframe.
页:
[1]