在 Firefox 附加组件中,我想向此网站中按钮的 URL 发送 HTTPRequest:www.google.com/ads/preferences。我尝试做的是获取包含按钮的表单并向操作属性发出 HTTP 请求(目标是获取服务器发送的双击 cookie,如果您这样做)。问题是,当我得到表单时,我得到一个 XRayWrapper 并且我不知道如何检索该属性(我已经尝试过这样做:
// unwrap is not available on older branches (3.5 and 3.6) - Bug 533596
if (XPCNativeWrapper && "unwrap" in XPCNativeWrapper) {
try {
return XPCNativeWrapper.unwrap(thing);
} catch(e) {
// Unwrapping will fail for JS literals - numbers, for example. Catch
// the exception and proceed, it will eventually be returend as-is.
}
}
if (thing['wrappedJSObject']) {
return thing.wrappedJSObject;
}
另外,我发现当我得到 id="content-pane" 的 div 包含表单和对 innerHTML 的访问时,我得到一个空字符串。但这一定是可能的,因为我可以用另一个附加组件firebug查看这些内容....
我真的迷路了,谢谢你的帮助!
编辑:我正在使用附加 SDK,所以我创建了一个页面工作者来处理所有这些:
createDoubleClick: function() {
new PageWorker.Page({
contentURL: "http://www.google.com/ads/preferences",
contentScriptFile: data.url('contentScripts/getCookie.js'),
contentScriptWhen: "end",
onMessage: function(message) {
console.log(message);
}
});
}
然后,在 contetScript 中,我尝试获取 DOM:
// Get button
var idPanel = "content-pane";
// Get content panel
var panel = document.getElementById(idPanel);
console.log(panel.innerHTML);
结果:
info: