크롬 확장에서 현재 페이지의 소스 HTML 가져 오기



Answers

Question

나는 크롬 확장이있다. 현재 페이지의 HTML 소스에서 분석해야합니다. 백그라운드 페이지와 콘텐츠 스크립트로 모든 종류의 솔루션을 찾았지만 전혀 도움이되지 못했습니다. 여기 내가 지금까지 가지고있는 것이있다.
manifest.json :

{
  "name": "Extension",
  "version": "1.0",
  "description": "Extension",
  "browser_action": {
    "default_icon": "bmarkred.ico",
    "popup": "Test.html"
  },
  "content_scripts": [
    {
      "matches": ["http://*/*"],
      "js": ["content.js"]
    }
  ],
  "background": {
    "page": "backgroundPage.html"
  },
  "permissions": [
    "cookies",
    "tabs",
    "http://*/*", 
    "https://*/*"
  ]
}

background.html :

<html>
<head>
<script type="text/javascript">
    try {
        chrome.tabs.getSelected(null, function (tab) {
            chrome.tabs.sendRequest(tab.id, {action: "getSource"}, function(source) {
                alert(source);
            });
        });
    }
    catch (ex) {
        alert(ex);
    }
</script>
</head>
</html>

content.js :

chrome.extension.onRequest.addListener(function(request, sender, callback) {
    if (request.action == "getSource") {
        callback(document.getElementsByTagName('html')[0].innerHTML);
    }
});

경고는 항상 정의되지 않은 경고입니다. content.js 파일에서 콜백 함수를 변경하더라도 :

callback('hello'); 

여전히 같은 결과. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 어쩌면 내가 잘못된 방향으로 가고있을 수도 있습니다. 내가 정말로 필요로하는 것은 이것이다. 사용자가 확장 팝업을 열면 (그리고 그때 만) 분석 할 수 있도록 현재 페이지의 HTML이 필요합니다. 어떤 제안?




Related