为什么我不能使用chrome扩展注入socket.io

时间:2015-03-05 02:14:30

标签: javascript node.js sockets google-chrome socket.io

我有一个非常基本的socket.io应用程序,可以在服务器端监听html页面上的按钮点击。

的index.html:

<html>
<head>
        <script src="jquery.min.js"></script>
        <script src="socket.io.js"></script>
        <script src="index.js"></script>
</head>
<body><button id="asdf">click</buton></body>
</html>

index.js:

var socket = io('http://localhost:3000');
socket.on('connect',function(){ 
$(document).ready(function(){
    $('#asdf').click(function(){
        socket.emit('0.1');
    });
});
});

这部分有效。我想要做的是将此功能放入chrome扩展程序,以便我可以让我的节点应用程序响应DOM中的事件。现在,我有一个背景页面,在单击扩展图标时会注入​​脚本。

background.js:

chrome.browserAction.onClicked.addListener(function(tab) {
    chrome.tabs.executeScript({
        file: 'script.js'
    });
});

的script.js:

console.log('test');

所以这也有效,但是当我将socket.io.js代码复制并粘贴到script.js文件中时,没有任何内容记录到控制台,我认为这意味着该脚本不起作用。为什么这不起作用,有没有更好的方法将socket.io.js集成到浏览器扩展中?

1 个答案:

答案 0 :(得分:1)

所以我基本上最终通过后台页面连接到套接字,并通过内容脚本从该页面发送消息,这对我的应用程序来说没问题。