2013-07-23 177 views
4

有人可以告訴我如何在後臺打開網址,以及如何從中獲取數據。我想要打開的URL在一個頁面中,我也從中獲取數據。我使用XPath來獲取數據。 這是我的代碼:在後臺打開標籤並從中獲取數據 - Chrome擴展程序

Popup.js

chrome.tabs.query({ 
active: true, 
currentWindow: true }, function(tabs){ 
if(tabs[0].url.indexOf("extranet.louvre-hotels.fr")!=-1) 
{ 
    chrome.tabs.sendRequest(tabs[0].id, { 
     action: "getDOM" 
    }, function(response) 

    { 
     chrome.tabs.getSelected(null, function(tab) { 
    // get response 
     });   
    }); 
} 

});

manifest.json的

{ 
"manifest_version": 2, 

"name": "SymaExtract", 
"description": "SymaExtract", 
"version": "1.0", 
"browser_action": { 
    "default_icon": "icon.png", 
    "default_popup": "popup.html" 
}, 
"permissions": [ 
    "webNavigation", 
    "tabs", 
    "background", 
    "http://localhost/extract.php", 
    "http://*/*" 

], 
"background": { 
    "scripts": ["background.js"] 
}, 
"content_scripts": [ 
{ 
    "matches": ["http://*/*"], 
    "js": ["dom.js"] 
} 

] }

Background.js

chrome.tabs.create({url: 'url_that_i_want_to_open'}); 
+0

的[爲鍍鉻時在後臺運行動態網站更新Chrome桌面通知(http://stackoverflow.com/q/16343320/710446)可能的複製,其中asker希望獲取頁面內容並在後臺頁面中檢查它們。然後再次,可能不是一個完全重複的,因爲我不是100%清楚你想做什麼(但該鏈接可能仍然有幫助)。 – apsillers

回答

2

你所說的 「在後臺打開標籤」 是什麼意思? 您是否想隱藏用戶在後臺發生某種頁面抓取的事實?如果是這樣,我認爲目前的Chrome擴展API無法實現。

請檢查這個問題:How to fetch javascript heavy pages from chrome extension

我幾個月前面臨同樣的問題。

如果您不關心用戶是否注意到打開了新的選項卡/窗口,那麼只需創建新選項卡並且不要關注它。這樣做很簡單,請查看擴展文檔。

順便說一句,在我看來,Xpath不是要走的路。我認爲CSS更適合解析數據。

還要檢查這個最近的答案:Chrome extension: How to open a link in new tab?

相關問題