我正在尝试创建一个 Firefox 扩展,在触发当前页面的任何 Javascript 之前触发我的 Javascript 代码。我的 Javascript 代码将基本上控制页面的 Javascript 代码是否可以执行或拒绝。
我首先尝试遵循这个答案,但我无法真正弄清楚如何让它工作并意识到我正在依赖onDOMContentLoaded
,它在 Javascript 已经执行后加载。
然后我把注意力转向 XPCOM,但又一次没有真正理解 Firefox 教程告诉我的内容。
我最近一直在尝试通过 Firebug 进行扩展,但我似乎遇到了同样的问题......只有在 Javascript 被解析/执行后才能访问它。这是我编写的结果代码。我想如果我可以在onExamineResponse
事件中访问文件的对象,我的问题就可以解决,但我不知道该怎么做......我说的是这段代码:
BeepbopListener.prototype = {
onRequest: function(context, file) {
...
},
onExamineResponse: function(context, file) {
FBTrace.sysout("onexamineresponse " + file); // this returns something like
// '[xpconnect wrapped (nsISupports, nsIHttpChannel, nsIRequest, nsIUploadChannel, nsITraceableChannel, nsIHttpChannelInternal)]'
// but I don't know how to access those elements...
var pattern = /\.js$/;
if (pattern.test(file.href) && FBTrace.DBG_BEEPBOP) {
FBTrace.sysout("ONEXAMINE DOESN'T EVEN GET IN THIS IF SO YOU WON'T SEE THIS");
}
},
...
};
所以我的问题是......是否有一个教程向我展示了如何在页面执行之前访问页面上的所有 Javascript 代码?另外,如果有人有任何有用的见解,我很想听听。哦,如果你们都需要我提供更多代码,请告诉我,我会发布它。