Bir krom uzantım var. Mevcut sayfanın HTML kaynağından analiz etmem gerekiyor. Burada arka plan sayfaları ve içerik betikleri ile her türlü çözümü buldum ama hiçbiri bana yardım etmedi.
manifest.json:Geçerli sayfanın kaynak HTML'sini krom uzantısından almak
{
"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);
}
});
uyarı daima tanımsız uyarıları burada ben bugüne kadar ne olduğunu. Hala
callback('hello');
aynı sonucu: i content.js içinde değiştirseniz bile üzere geri çağırma işlevi dosya. Neyi yanlış yapıyorum? belki de yanlış yöne gidiyorum. Gerçekten ihtiyacım olan bu. Kullanıcı uzantı açılır penceresini açtığında (ve sadece o zaman), mevcut sayfanın HTML’ine ihtiyacım var, böylece onu analiz edebilirim. baska öneri?
bir problem (içerik komut enjekte edilmeden önce) Arka plan sayfasında kod hemen çalışır olmasıdır. Çok benzer/tekrarlanmış bir soru daha önce sorulmuştur; [Yeni bir Google Chrome sekmesini aç ve kaynağı al] 'daki cevaba bir göz atın (http://stackoverflow.com/a/10162291/938089?open-a-new-google-chrome-tab-and-get- kaynak). –
Yanıt yazdığınız için teşekkür ederiz. Ekteki bağlantınızdaki kod bölümlerini kopyaladım ancak hala çalışmıyor. Sorun şu ki, uzantım bir pop-up ve HTML'yi yalnızca kullanıcı uzantıyı açtığında almam gerekiyor. Örneğin, geçerli sekme facebook.com ise, sadece uzantımı açtığımda, html kaynağını js dosyasına (içerik komut dosyasını veya arka plan sayfasını değil) alırım. –
Sorunuzu güncel kodunuzla güncelleyin. Kod, sorunu vurgulayan yorumlar içermelidir. –