javascript - Chrome 调试器中的这个十六进制值是什么意思?

标签 javascript google-chrome

我很好奇为什么在此处的 Chrome 调试器输出中似乎有一个与每个源关联的十六进制数 ...

WebSocket is already in CLOSING or CLOSED state.
(anonymous) @ websocket.js?13d9:192
exports.encodePacket @ browser.js?9636:123
(anonymous) @ websocket.js?13d9:170
WS.write @ websocket.js?13d9:202
Transport.send @ transport.js?87a5:110
Socket.flush @ socket.js?1006:565
Socket.sendPacket @ socket.js?1006:625
Socket.ping @ socket.js?1006:529
(anonymous) @ socket.js?1006:516
setTimeout (async)
Socket.setPing @ socket.js?1006:514
Socket.onPacket @ socket.js?1006:445
(anonymous) @ socket.js?1006:273
Emitter.emit @ index.js?ea2f:133
Transport.onPacket @ transport.js?87a5:145
Transport.onData @ transport.js?87a5:137
ws.onmessage @ websocket.js?13d9:147

例如,源 websocket.js13d9 相关。

这个十六进制值从何而来,有何用途?

我不关心这种情况下的实际错误,我只是用它来举例。

最佳答案

这是文件 URL 的一部分。

在这种情况下无法确定是什么设置了它,但这是在更新 js 文件时避免缓存的常用方法。

Chrome 的控制台输出不显示列号,所以您在 : 之后的是行号。

const script = document.createElement('script');
const blob = new Blob([`const foo = "bar";
// should throw at line 3
throw new TypeError('not a baz');`], {type: "application/javacript"});
script.src = URL.createObjectURL(blob);
document.head.appendChild(script);

结果在

Uncaught TypeError: not a baz            blob:null/96273a46-9...a3b1-12d1f1f3355c:3
   at 96273a46-9f81-4eed-a3b1-12d1f1f3355c:3

Error message from Chrome's console

如您所见,此处仅显示行号,尽管 Error.stack 消息确实以 script_url:lineno:colno 的形式公开了列号>

const script = document.createElement('script');
const blob = new Blob([`console.log(new Error('foo').stack);`], {type: "application/javacript"});
script.src = URL.createObjectURL(blob);
document.head.appendChild(script);


/*
Error: foo
    at blob:null/[random-blob-url]:1:13
*/

关于javascript - Chrome 调试器中的这个十六进制值是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55582944/

相关文章:

javascript - 无法将变量传递给ajax url

javascript - 分组标题列大小

javascript - 从 JSON 中获取 KEY

html - Windows 10 上 Chrome 76 中不必要的滚动条

google-chrome - 调试二进制 websocket

javascript - 在 Chrome 扩展中,为什么当调用传递给 chrome.tabs.remove() 的回调时,关闭的选项卡仍然存在?

javascript - 如果执行了 "if...else if"中的任何一个,则运行代码?

javascript - 以更简单的方式获取树数据结构的深度

javascript - 为 Node JS(或浏览器)创建异步 api

ruby-on-rails - heroku/rails/chrome/selenium : error while loading shared libraries: libxshmfence. so.1