gpt4 book ai didi

javascript - 哪种转换类型获取所有 Chrome 浏览历史记录?

转载 作者:行者123 更新时间:2023-11-27 22:51:17 24 4
gpt4 key购买 nike

我正在创建一个扩展来获取我的 Chrome 浏览器的所有浏览历史记录。一切都工作正常,但这里有一个小问题,我想检索所有浏览历史记录,如“chrome://history/”。我无法检索所有历史记录。 谁能建议我哪种转换类型可以获得所有浏览历史记录?提前致谢。

这是我的代码的一小部分:

function onAnchorClick(event) {
chrome.tabs.create({
selected: true,
url: event.srcElement.href
});
return false;
}

// Given an array of URLs, build a DOM list of those URLs in the
// browser action popup.
function buildPopupDom(divName, data) {
var popupDiv = document.getElementById(divName);

var ul = document.createElement('ul');
popupDiv.appendChild(ul);

for (var i = 0, ie = data.length; i < ie; ++i) {
var a = document.createElement('a');
a.href = data[i];
a.appendChild(document.createTextNode(data[i]));
a.addEventListener('click', onAnchorClick);

var li = document.createElement('li');
li.appendChild(a);

ul.appendChild(li);
}
}

// Search history to find up to ten links that a user has typed in,
// and show those links in a popup.
function buildTypedUrlList(divName) {
// To look for history items visited in the last week,
// subtract a week of microseconds from the current time.
var microsecondsPerWeek = 1000 * 60 * 60 * 24 * 7;
var oneWeekAgo = (new Date).getTime() - microsecondsPerWeek;

// Track the number of callbacks from chrome.history.getVisits()
// that we expect to get. When it reaches zero, we have all results.
var numRequestsOutstanding = 0;


chrome.history.search({
'text': '', // Return every history item....
'startTime': oneWeekAgo // that was accessed less than one week ago.
},
function(historyItems) {
// For each history item, get details on all visits.
for (var i = 0; i < historyItems.length; ++i) {
var url = historyItems[i].url;
var processVisitsWithUrl = function(url) {
// We need the url of the visited item to process the visit.
// Use a closure to bind the url into the callback's args.
return function(visitItems) {
processVisits(url, visitItems);
};
};
chrome.history.getVisits({url: url}, processVisitsWithUrl(url));
numRequestsOutstanding++;
}
if (!numRequestsOutstanding) {
onAllVisitsProcessed();
}
});


// Maps URLs to a count of the number of times the user typed that URL into
// the omnibox.
var urlToCount = {};

// Callback for chrome.history.getVisits(). Counts the number of
// times a user visited a URL by typing the address.
var processVisits = function(url, visitItems) {
for (var i = 0, ie = visitItems.length; i < ie; ++i) {
// Ignore items unless the user typed the URL.
if (visitItems[i].transition != 'typed') {
//continue;
}

if (!urlToCount[url]) {
urlToCount[url] = 0;
}

urlToCount[url]++;
}

// If this is the final outstanding call to processVisits(),
// then we have the final results. Use them to build the list
// of URLs to show in the popup.
if (!--numRequestsOutstanding) {
onAllVisitsProcessed();
}
};
// This function is called when we have the final list of URls to display.
var onAllVisitsProcessed = function() {
// Get the top scorring urls.
urlArray = [];
for (var url in urlToCount) {
urlArray.push(url);
}

//按照用户键入 URL 的次数对 URL 进行排序。 urlArray.sort(函数(a, b) { 返回 urlToCount[b] - urlToCount[a]; });

    buildPopupDom(divName, urlArray.slice(0, 2000));
};
}

document.addEventListener('DOMContentLoaded', function () {
buildTypedUrlList("typedUrl_div");
});

最佳答案

根据您的评论回复,假设您想获取以 chrome://history 开头的所有历史记录,您可以使用 chrome.history.search :

chrome.history.search({text: "", maxResults: 10000}, function(results) {
var ans = results.filter(function(result) {
return result.startsWith("chrome://history");
});
});

关于javascript - 哪种转换类型获取所有 Chrome 浏览历史记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38035638/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com