javascript - tf.browser.fromPixels() 不起作用,因为“DOM 尚未准备好”
问题描述
我正在尝试使用 TensorFlow.js 的tf.browser.fromPixels()
功能。不幸的是,我收到以下错误:
backend_webgl.ts:309 Uncaught Error: The DOM is not ready yet. Please call tf.browser.fromPixels() once the DOM is ready. One way to do that is to add an event listener for `DOMContentLoaded` on the document object
at e.fromPixels (backend_webgl.ts:309)
at t.fromPixels (engine.ts:870)
at fromPixels_ (browser.ts:55)
at Object.fromPixels (operation.ts:45)
at ex4.html:10
但我是tf.browser.fromPixels()
从传递给的函数内部调用的window.addEventListener('DOMContentLoaded', ...)
。知道为什么我会收到此错误以及如何使该fromPixels
功能正常工作吗?
<html>
<head>
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@1.2.7/dist/tf.min.js"></script>
</head>
<body>
<img id="test" src="https://jpeg.org/images/jpeg-home.jpg">
<script>
window.addEventListener('DOMContentLoaded', ev => {
const img = document.getElementById('test')
tf.browser.fromPixels(img).print()
})
</script>
</body>
</html>
解决方案
if (document.readyState !== 'complete') {
throw new Error(
'The DOM is not ready yet. Please call ' +
'tf.browser.fromPixels() once the DOM is ready. One way to ' +
'do that is to add an event listener for `DOMContentLoaded` ' +
'on the document object');
}
根据上面的代码,抛出错误是因为document.readyState
is not complete
。
DOMContentLoaded 事件在初始 HTML 文档完全加载和解析后触发,无需等待样式表、图像和子框架完成加载。 https://developer.mozilla.org/en-US/docs/Web/API/Window/DOMContentLoaded_event
文档的 readyState 可以是以下之一:
loading
文档仍在加载中。交互
文档已完成加载,文档已被解析,但图像、样式表和框架等子资源仍在加载。完成
文档和所有子资源已完成加载。该状态指示加载事件即将触发。
https://developer.mozilla.org/en-US/docs/Web/API/Document/readyState
DOMContentLoaded
在尚未加载任何子资源之前调用。所以在执行代码时,document.readyState
仍然是interactive
.
只需忽略错误所说的内容,然后尝试load
事件侦听器。
推荐阅读
- nginx - 如何将nginx当前数据备份到内存或共享内存?
- angularjs - AngularJS 与 MVC 和 web api - ng-repeat 问题
- android - 新实例();在片段中收到 null
- javascript - 围绕现有的 MutationObserver 使用 Tampermonkey 插入 DOM 元素
- gtk - 在 GtkSourceView 中更改缓冲区时如何维护 GtkSourceCompletion?
- python - OpenCV 和 Python:标量与所有像素和通道之间的算术运算
- javascript - javascript 异步帮助 async.timesLimit
- amazon-cloudwatchlogs - 具有 JSON 键的 AWS CloudWatch 日志指标筛选器具有字符空间
- node.js - 节点进程中具有角度、高内存的asp .net核心(一直在增长)
- javascript - 使用 mapboxgl 的数据驱动的集群颜色