Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在iframe的画布中绘制图像_Javascript_Html_Image_Canvas - Fatal编程技术网

Javascript 在iframe的画布中绘制图像

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");

我在HTML文件中有一个canvas元素,我在
中调用它。问题是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
回调之前加载。它无论如何都不起作用。。。