【发布时间】:2018-10-04 15:32:55
【问题描述】:
我正在尝试创建一个可以挂钩特定页面的 WebSocket 的 Chrome 扩展内容脚本。当前,当页面被访问时,内容脚本会像这样将另一个脚本注入页面:
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 包含 websocket 的 addEventListener。
Window.WebSocket.addEventListener("message",function(event){
console.log("Websocket read");
})
但是当我运行扩展时,我收到一个错误,无法读取未定义的属性 addEventListener。所以我不完全确定这是否是正确的方法。我已经验证脚本确实被注入了页面,但是我将如何在页面的原始 onmessage WebSocket 之上覆盖或创建自己的侦听器。有可能吗?
【问题讨论】:
-
你能试试像
window.WebSocket.addEventListener这样的小写窗口吗? -
您好,当我将其更改为
window.WebSocket.addEventListener时,我收到此错误:Uncaught TypeError: window.WebSocket.addEventListener is not a function -
使用
onmessage代替window.WebSocket.onmessage = function(event) { console.debug("WebSocket message received:", event); }; -
你在哪里定义了
Window.WebSocket?我不是 chrome 扩展的专家,但我认为这是错误的。在 javascript 中,您应该首先使用new关键字创建一个 websocket 实例。 -
这能回答你的问题吗? stackoverflow.com/questions/22868897/…
标签: javascript google-chrome-extension websocket hook addeventlistener