如何在 iframe 中创建画布元素
How to create a canvas element inside an iframe?
我有一个iframe,其中有DIV元素"pageContainer1"。我希望能够在该 DIV 元素中添加画布元素并访问它以在其上绘制一些内容。到目前为止,我已经尝试过,但似乎不起作用。
var can=document.getElementById('frame').contentWindow.document.getElementById("pageContainer1");
var canvas=document.createElement("canvas");
canvas.id="testcanvas";
can.appendChild(canvas);
var can1=document.getElementById("frame").contentWindow.document.getElementById("testcanvas");
var ctx= can1.getContext('2d');
ctx.beginPath();
ctx.moveTo(20,20);
ctx.lineTo(100,100);
ctx.stroke();
请建议一些方法来做到这一点,即使使用 jQuery。
-
验证 iframe 是否已完全加载,并且您是否在变量"can"中获取有效元素
-
当您已经在变量"canvas"中访问画布时,您是否需要再次获取画布? 尝试删除它并查看它是否有效。
-
尝试检查页面并确保已添加画布
编辑看看这是否有帮助:
function loaded() {
var iframe = document.getElementById('thisistheiframe');
var iframediv = iframe.contentWindow.document;
iframediv.body.innerHTML += '<canvas id="thecanvas" style="background-color:red; width:100px; height:100px"></canvas>';
var c = iframediv.getElementById('thecanvas');
var ctx = c.getContext('2d');
ctx.moveTo(20, 20);
ctx.lineTo(100, 100);
ctx.stroke();
}
http://jsfiddle.net/mW8kv/
编辑 2更新了小提琴以使用createElement,而不仅仅是设置html:
var can = iframediv.createElement('canvas')
can.id = 'thecanvas';
iframediv.body.appendChild(can);
var c = iframediv.getElementById('thecanvas');
相关文章:
- CKEditor Widget-阻止编辑可编辑元素本身
- 如何设置html元素填充的动画
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 使用clickToggle并在单击另一个元素时关闭元素
- 单击时将焦点更改为元素
- 表追加而不附加最后一个元素
- 如何在jQuery中获取元素的形式
- 我可以获得相对于被点击元素的确切点击位置吗
- 在函数中添加数组元素的数值
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 将视口底部滚动到元素底部
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 如何使用jquery处理php循环通过元素
- 在 jquery 可排序后定义
- 元素
- 元素的索引
- 元素
- “<元素/>”到“<元素> 元素>”是否有效
- d3.js:水平居中
元素的父元素'元素 - Polymer 1.0不能访问嵌套模板中的元素.元素
- 为什么是n't '元素a
元素