Javascript 在iframe的画布中绘制图像
我在HTML文件中有一个canvas元素,我在Javascript 在iframe的画布中绘制图像,javascript,html,image,canvas,Javascript,Html,Image,Canvas,我在HTML文件中有一个canvas元素,我在中调用它。问题是canvas加载一些图像而忽略其他图像。甚至有时同一张图片也不会被画出来。我尝试了多种解决方案。路径是本地文件系统的路径。首先将映像下载到服务器,然后调用脚本。以下是我的JS脚本: function loadCanvas(e) { alert(e.getSource().getProperty("sourcePath")); var path = e.getSource().getProperty("sourcePath");
中调用它。问题是canvas加载一些图像而忽略其他图像。甚至有时同一张图片也不会被画出来。我尝试了多种解决方案。路径是本地文件系统的路径。首先将映像下载到服务器,然后调用脚本。以下是我的JS脚本:
function loadCanvas(e) {
alert(e.getSource().getProperty("sourcePath"));
var path = e.getSource().getProperty("sourcePath");
var source = e.getSource();
alert('source' + source);
var ADFiframe = source.findComponent("if1");
alert('ADFiframe' + ADFiframe);
var iframe = document.getElementById(ADFiframe.getClientId()).firstChild;
alert('iframe' + iframe);
var innerDoc = (iframe.contentDocument) ? iframe.contentDocument : iframe.contentWindow.document;
alert('innerDoc' + innerDoc);
var canvas = innerDoc.getElementById("imageView");
alert('canvas' + canvas);
var context = canvas.getContext('2d');
var img = new Image();
img.src = path;
alert('path' +path);
img.onload = function() {
alert('img.src' + img.src);
alert('Press OK to load your image');
context.drawImage(img, 0, 0, 700, 700);
};
// img.onerror= function(){
// alert('Ooops,Error loading this image');
// };
}
我之所以使用InlineFrame,是因为JSF(OracleADF)将其加载到了视图层。它显示异常行为。首先,不要在
img.src
和img.onload
之间放置alert
,该警报延迟可能刚好足够长,允许img在知道它的onload
回调之前加载。它无论如何都不起作用。。。