我正在尝试创建一个Chrome扩展程序的内容脚本,可以钩取特定页面的WebSocket。当前,在访问页面时,内容脚本会将另一个脚本注入到页面中,如下所示:
var s = document.createElement('script');
s.src = chrome.extension.getURL('Script.js');
s.onload = function () {
this.remove();
};
(document.head || document.documentElement).appendChild(s);
然后我的Script.js文件包含一个用于websockets的addEventListener事件监听器。
Window.WebSocket.addEventListener("message",function(event){
console.log("Websocket read");
})
但是当我运行扩展时,我收到一个错误信息,无法读取未定义的属性addEventListener。因此,我不确定这是否是正确的方法。我已经验证了脚本确实被注入到页面中,但是如何在原始onmessage WebSocket的基础上覆盖或创建自己的监听器呢?这可能吗?
onmessage
,例如window.WebSocket.onmessage = function(event) { console.debug("WebSocket message received:", event); };
。 - Arun KumarWindow.WebSocket
?我不是 Chrome 扩展程序的专家,但我认为这是错误的。在 JavaScript 中,你应该首先使用new
关键字创建 WebSocket 的实例。 - pouyan