我做了一個擴展程序,它將跟蹤一個人在漫畫網站上閱讀的漫畫,並列出他們上次在其收藏夾頁面上閱讀的章節。而且我最近提出了一個有用的功能來使擴展更好一點。我想讓用戶選擇只能追蹤他們在網站上收藏的漫畫。因此,當他們閱讀時,擴展名會在後臺不斷檢查,如果它在他們的收藏夾中,那麼保存它,否則不保存。Chrome擴展程序 - 從背景中的網站的單獨頁面獲取HTML
該網站有一個收藏夾頁面,其中包含一個人收藏的所有漫畫列表。我希望能夠在用戶隱藏的背景中不斷獲取該頁面上列出的每個漫畫的名稱。
所以我的問題是,有沒有辦法在後臺抓取特定頁面的html,並不斷抓取特定數據,如某些元素的文本保存到數組中,而用戶不必實際上在收藏夾頁面?
編輯: 解決方案
var barray = [];
function getbm(callback) {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(data) {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
var data = xhr.responseText;
callback(data);
} else {
callback(null);
}
}
}
var url = 'http://mangafox.me/bookmark/index.php?status=all';
xhr.open('GET', url, true);
xhr.send();
};
function res(data) {
var parsed = $.parseHTML(data);
parsed = $('<div />').append(parsed);
parsed.find('h2.title').each(function(){
var bmanga = $(this).children('a.title').text();
barray.push({"manga": bmanga});
});
chrome.storage.local.set({'bData': barray})
};
getbm(res);
謝謝,它的工作!但是,在記錄我收到的數據後,它似乎將整個html代碼記錄爲一個巨大的字符串。我如何讓它可搜索?例如,使用以下代碼搜索它'var manga = $('h2.title')。children('a.title')。text();' – Vemon 2014-12-04 14:13:05
http://stackoverflow.com/questions/20196442/parse- xmlhttprequest-responsetext-with-jquery – Xan 2014-12-04 14:22:05
非常感謝,它的工作! :) – Vemon 2014-12-04 15:14:09