- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我的问题:
uncaught exception: [Exception... "Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIDOMCanvasRenderingContext2D.drawImage]" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS frame :: file:///***************.js :: redrawView :: line 308" data: no]
产生此行为的代码(tmpImg 正在动态加载,因此如果尚未加载,则跳过它)。
if(tmpImg!=null && tmpImg.img.complete===true && tmpImg.img.src!=null){
var tmpPos = i_getCoordsImage(tmpImg);
var rect = getRectInCurrentView(tmpPos.x,tmpPos.y,tmpPos.w,tmpPos.h);
console.log(tmpImg);
console.log(rect);
mainDisplayContext.drawImage(tmpImg.img,rect.x,rect.y,rect.w,rect.h);
}
当 tmpImg 刚刚加载时(至少根据 Firebug 的日志),问题发生了几次,然后消失了。
代码片段连续调用了几次,所以在抛出错误时我看不到图像是否真的显示了。
rect.* 中的值是 float ,类似于 {x:-1500, y:-2500,h:1000,w:1000}
您是否知道此错误的来源?
编辑 1
此代码产生错误(您需要在同一目录中有一个名为“test.png”的图像
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<meta charset="UTF-8" />
</head>
<body id="body">
<canvas id="canvas" width="600" height="600"></canvas>
<script>
//[CDATA[
var img = new Image();
var mdc = document.getElementById("canvas").getContext("2d");
function displayCallback(){
if(img.complete===true && img.src!=null){
mdc.drawImage(img,0,0,600,600);
}
setTimeout(displayCallback, 50);
}
setTimeout(function(){img.src = "test.png";}, 10000);
setTimeout(displayCallback, 1000);
//]]
</script>
</body>
</html>
这似乎与空图像具有“”的 src 专有性这一事实有关。它总是正确的吗?
编辑2
事实上,对于错误报告,这个 JavaScript 就足够了(如果我理解的话):
document.getElementById("canvas").getContext("2d").drawImage(new Image(),0,0);
最佳答案
当 DOM API 调用抛出未捕获的 Javascript 异常时,您会从 Firefox 收到这种无用的错误消息。实现 drawImage 的代码 -- http://mxr.mozilla.org/mozilla-central/source/content/canvas/src/nsCanvasRenderingContext2D.cpp#3212 -- 似乎返回错误代码 NS_ERROR_NOT_AVAILABLE(在 C++/JS 边界被转换为 JS 异常),由于某种原因,绘制图像所需的所有数据当前都不可用。看起来即使图像被认为已完全加载也会发生这种情况;我对这部分代码还不够熟悉,不知道为什么会这样。
作为偶尔的 Firefox 内部黑客,我认为您在浏览器中发现了一个错误:specification for drawImage在任何情况下都不允许产生带有此错误代码的异常。 (请注意第 3243 行的评论,它似乎误解了规范的内容。)请构建一个完整的、独立的测试用例来演示问题,然后我很乐意帮助您提交错误报告。
关于javascript - 组件返回失败代码 : 0x80040111 (NS_ERROR_NOT_AVAILABLE),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6847713/
我有一个问题。我正在尝试在 Canvas 上绘制图像。该图像不是来自 HTML 页面,而是位于一个文件中。这是我使用的代码: var img = new Image(); img.src = "/im
我的问题: uncaught exception: [Exception... "Component returned failure code: 0x80040111 (NS_ERROR_NOT_A
Click Me var test = 0; function clickme() { test = 1; console.log(test); } window.onunload =
我想在 pts.js 中为粒子加载相同的图像。 当我尝试使用 Assets 文件夹中的本地镜像时,我在控制台中收到错误“NS_ERROR_NOT_AVAILABLE:”。 我在某处读到这可能是因为图像
我在编写 JavaScript 绘图工具时遇到了一些问题。这是一个单元测试,将来会用作我正在从事的更大项目的组件。它在 Canvas 中运行,但当我尝试运行它时,我收到此错误消息: Error: un
正在尝试调用 drawImage用video来源是网络摄像头的源似乎在 Firefox 中失败 NS_ERROR_NOT_AVAILABLE: Component is not available .
我有一个 SVG 数据 uri 成功呈现到我页面中的 img 元素。在 Chrome 中,使用 drawImage 将图像绘制到 Canvas 上效果很好,但在 FireFox 中,我得到 NS_ER
我是一名优秀的程序员,十分优秀!