【问题标题】:new Websocket() return wrong object in Firefox Quantumnew Websocket() 在 Firefox Quantum 中返回错误的对象
【发布时间】:2019-05-13 15:55:08
【问题描述】:

我使用的是 Firefox Quantum (64.0),JS 命令 new WebSocket() 返回与规范不同的对象:

MDN Websocket

HTML Standard

影响我的应用的缺失属性是.close() 函数,但还有其他区别。

您可以在下图中看到返回的对象有一个 .websocket 属性,其中包含所有缺失的属性。 websocket object

我做错了吗?使用旧版本的 Firefox(在 Quantum 之前,如 43)或使用 chrome 可以正常工作。

如果是 Firefox 的问题,我该如何报告?

编辑:

添加一些代码示例:

var exampleSocket = new WebSocket("wss://echo.websocket.org");
exampleSocket.close() // Throw "exampleSocket.close is not a function" in Firefox Quantum, works on chrome
exampleSocket.websocket.close() // Works on Firefox, Throw on chrome.

exampleSocket.websocket 不在文档中。

编辑2: 我在其他具有 60、61、63 和 64 版本的 Firefox 的机器上进行了测试,问题只发生在我的机器上。 当我从 Firefox 中删除所有插件时,它又开始工作了。

【问题讨论】:

  • 但是一个.close()方法;它就在原型对象上。如果有一些代码可以看,你的问题会更容易理解。
  • @Pointy 我添加了一个示例。要访问.close(),我需要使用这个不应该存在的 websocket 属性。
  • 嗯,Firefox 63.0.3 肯定不会那样做。
  • 感谢@Pointy 问题出在我的 Firefox 中的某个插件。

标签: javascript firefox websocket firefox-quantum


【解决方案1】:

问题是我安装的websocketsniff plugin

它甚至声明 WebSocket 对象会改变:

在 Firefox 中检查 websocket 框架。使用方法: 1) 打开开发者 工具 2) 打开“Websocket Sniffer”选项卡

此扩展将原生 websocket 对象替换为自定义对象。它 是肮脏的黑客,但这是一个单一的决定

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-31
    • 1970-01-01
    • 1970-01-01
    • 2018-06-17
    • 1970-01-01
    相关资源
    最近更新 更多