在新窗口中打开时,未在画布中绘制图像
Image not being drawn in canvas when opened in new window
我可以毫无问题地在画布上绘制图像。但我想把图像绘制在画布上的一个新窗口中。变量具有正确的值,但仍然没有绘制任何内容。
这是我的代码:
var popup = window.open();
popup.oldCanvas= oldCanvas;
popup.url = 'http://www.html5canvastutorials.com/demos/assets/darth-vader.jpg';
popup.document.open();
popup.document.write("<html><head>");
popup.document.write('<script src="lib/jquery/jquery-2.1.1.min.js"></script>');
popup.document.write("<script>'n");
popup.document.write("$(document).ready(function() { 'n");
popup.document.write(" function createCanvas() { 'n");
popup.document.write(" var img = new Image;'n");
popup.document.write(" var newCanvas = document.createElement('canvas');'n");
popup.document.write(" var context = newCanvas.getContext('2d'); 'n");
popup.document.write(" newCanvas.width = oldCanvas.width; 'n");
popup.document.write(" newCanvas.height = oldCanvas.height; 'n");
popup.document.write(" img.onload = function() {'n");
popup.document.write(" context.drawImage(this, 0, 0); 'n");
popup.document.write(" }; 'n");
popup.document.write(" img.src = url; 'n");
popup.document.write(" }; 'n");
popup.document.write(" createCanvas(); 'n");
popup.document.write("}); 'n");
popup.document.write("</script>");
popup.document.write("</head><body>");
popup.document.write("</body>");
popup.document.write("</html>");
popup.document.close();
请告诉我我做错了什么,因为当不在新窗口中绘制时,相同的代码可以很好地工作。
画布已创建,但从未插入DOM:
var newCanvas = document.createElement('canvas');
document.body.appendChild(newCanvas); // add to DOM
...
相关文章:
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 多维数据集网格未在指定的分区中绘制
- 如何在React Native中绘制图形
- 画布中绘制的矩形区域的弹出工具提示
- D3从嵌套的JSON中绘制第二个圆环图
- 在WebGL中绘制多个二维图像
- 如何在运行时在HTML5画布中绘制正方形
- 用d3和numericjs在javascript中绘制错误椭圆
- 如何使用d3.js从csv文件中绘制areaplot?请任何人分享代码
- Python在spark中绘制地图
- 如何在html5画布中绘制圆形作为单独的画布
- 如何在D3.js中绘制地图投影上的点,并使用范围滑块过滤数据
- 使用bokeh/flexx-pyscript在Python 3.5中绘制交互式浏览器
- 使用方程和/或矢量在三维空间中绘制二维平面
- canvas没有从uri中绘制完整的图像
- 如何使用按钮来调用在画布中绘制的函数
- 使用模式在 HTML5/JS 中绘制图像
- 在 d3.js 中绘制滚动/移动平均线
- 我需要最快、最简单的方法来在 Javascript 中绘制数据
- 在画布中绘制对象的阴影