Firefox 부가 기능에서이 웹 사이트의 버튼 URL에 HTTPRequest를 보내고 싶습니다 : www.google.com/ads/preferences. 내가하려는 것은 버튼이 포함 된 양식을 가져 와서 작업 속성에 HTTP 요청을하는 것입니다 (목표는 서버에서 보내는 doubleclick 쿠키를 얻는 것입니다). 문제는 그 양식을 얻을 때 내가 XRayWrapper를 얻을 내가 (이미 할 시도한 그 속성을 검색하는 방법을 모르는 :이 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에 대한 양식과 액세스가 포함 된 div는 공백 문자열을 갖지만, 다른 애드온 인 firebug로 이러한 내용을 볼 수 있기 때문에 가능해야합니다. 당신의 도움에 대한
정말 잃었어요, 감사
편집! I는 현재 부가 기능 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:
먼저 답장을 보내 주셔서 감사합니다. 나는 실제로 내가하고있는 것을 더 편집하고 설명했다. 보시다시피, 나는 "contentScriptWhen :"end ""을 사용하여 작업자를 실행합니다. 그러면이 객체가 이미로드되어 있어야한다고 가정하지만 패널의 innerHTML을 얻을 때 콘솔을 통해 아무 것도 얻지 못합니다. – synack
이 모든 목표는 브라우저에로드 된 httprequest에서 쿠키를 얻는 것입니다. – synack
@ Kits89 : 페이지가로드됩니다. 하지만 그 내용이 동적으로 생성되고 있습니다. 제대로 볼 수 있다면'load' 이벤트 핸들러에서 볼 수 있습니다. 전체 코드를'setTimeout (function() {...}, 0)'에 넣으면 (최소한으로 지연 시키십시오) 작동해야합니다. –