相关疑难解决方法(0)

使用内容脚本将代码插入页面上下文

我正在学习如何创建Chrome扩展程序.我刚开始开发一个来捕捉YouTube活动.我想将它与YouTube Flash播放器一起使用(稍后我将尝试使其与HTML5兼容).

manifest.json的:

{
    "name": "MyExtension",
    "version": "1.0",
    "description": "Gotta catch Youtube events!",
    "permissions": ["tabs", "http://*/*"],
    "content_scripts" : [{
        "matches" : [ "www.youtube.com/*"],
        "js" : ["myScript.js"]
    }]
}
Run Code Online (Sandbox Code Playgroud)

myScript.js:

function state() { console.log("State Changed!"); }
var player = document.getElementById("movie_player");
player.addEventListener("onStateChange", "state");
console.log("Started!");
Run Code Online (Sandbox Code Playgroud)

问题是控制台给了我"开始!" ,但没有"状态改变!" 当我播放/暂停YouTube视频时.

将此代码放入控制台时,它可以正常工作.我究竟做错了什么?

javascript google-chrome youtube-api google-chrome-extension content-script

452
推荐指数
5
解决办法
24万
查看次数

通过userscript阅读websocket通信

如何使用greasemonkey脚本/ Chrome的用户脚本拦截正在运行的websocket通信?

我的目标是为浏览器内游戏提供额外的统计信息

javascript userscripts websocket

9
推荐指数
1
解决办法
877
查看次数

检查Chrome Dev Tools扩展程序中的WebSockets框架

我想创建一个Chrome Developer Tools扩展程序(一个新的面板)来分析我们自己网站上的WebSockets框架.据我所知,http://developer.chrome.com/extensions/devtools.network.html不够完整,无法访问WebSockets框架.那么我最好的选择是什么?

谢谢!

google-chrome-extension

8
推荐指数
1
解决办法
858
查看次数

如何检查Canvas框架

我刚看到这个链接,关于如何在Chrome开发工具上检查"Canvas框架",但是如何在Chrome扩展程序上进行检查?

我认为chrome.debugger.sendCommand应该在这里使用该方法.

在此输入图像描述

如何在Chrome扩展程序上执行此操作?

编辑:我通常想要使用Chrome的调试器或类似方法检查这些数据,而无需与JavaScript的代码交互.

javascript google-chrome-extension google-chrome-devtools

7
推荐指数
2
解决办法
8652
查看次数

扩展如何监听 WebSocket?(如果 WebSocket 位于 iframe 内怎么办?)

我正在编写一个 Firefox 扩展,需要监听浏览器和服务器之间的通信。对于 HTTP 通信,我在后台脚本中使用 webRequest 库。但根据这个 Mozilla 错误报告,我无法使用 webRequest 拦截 WebSocket 消息。我的扩展如何监听 WebSocket 通信?

更新:

我已经注入了我的WebSocket 包装器,但它从未被调用!我试图监听的 WebSocket 位于 iframe 内。这有关系吗?

javascript intercept websocket google-chrome-extension firefox-addon-webextensions

3
推荐指数
1
解决办法
3824
查看次数

通过原型监听WebSocket连接

我在这个问题上花了几个星期,但似乎找不到解决方法。这是用例。我正在开发chrome扩展程序,此扩展程序的主要目的之一是检测WebSocket何时打开或关闭。我看过WebSockets的HTML5规范,它们公开了以下相关方法/事件:

WebSocket.prototype.readyState = 0;
WebSocket.prototype.onopen = 0;
WebSocket.prototype.onerror = 0;
WebSocket.prototype.onclose = 0;
function WebSocket(url,protocols) {}
WebSocket.prototype.close = function(code,reason) {};
Run Code Online (Sandbox Code Playgroud)

由于我无法从扩展中访问单个实例,因此我不得不依靠包装这些原型来确定何时调用它们。例如:

WebSocket.prototype.close = function (close) {
    console.log("Closing socket....");
    return function (code, reason) {
        return close.apply(this, arguments);
    };
}(WebSocket.prototype.close);
Run Code Online (Sandbox Code Playgroud)

但是,我真正想做的是以某种方式为onopen,onerror或onclose包装或注册侦听器。不幸的是我不知道该怎么做。我尝试了一堆不同的方法。上面的方法适用于“关闭”,但它们不提供我依赖的“打开”。最有前途的想法没有用,它是:

WebSocket.prototype.constructor = function (constructor) {
    debugger;
    console.log("Register all my events here!");
    constructor.apply(this, arguments);
}(WebSocket.prototype.constructor);
Run Code Online (Sandbox Code Playgroud)

不幸的是,我从不能够达到断点或查看控制台日志,这使我相信自己做错了什么。

作为最后的选择,我尝试使用Object.Observe(),但无法观察原型:

Object.observe(WebSocket.prototype.readyState, function (changes) {
    console.log("Ready state");
});

Object.observe(WebSocket.prototype.onopen, function (changes) {
    console.log("On open");
});
Run Code Online (Sandbox Code Playgroud)

因此,总而言之,我尝试了几种不同的方法,但最终我碰壁了。最后,我的目标是通过侦听任何公开的方法或事件来检测WebSocket何时打开或关闭。任何帮助将不胜感激。

更新: 这是一个小提琴,包括以下建议:

http://jsfiddle.net/s35zpfq9/1/

谢谢!

javascript html5 websocket google-chrome-extension google-chrome-devtools

0
推荐指数
1
解决办法
1644
查看次数