Chrome добавил экспериментальное расширение API, которое может выполнить это, в частности, webNavigation.onBeforeRetarget.http://code.google.com/chrome/extensions/experimental.webNavigation.html
Однако, поскольку это все еще экспериментально (не используется в стабильных версиях Chrome или не выпускается в Интернет-магазине Chrome), я остановился на другом подходе.
В основном:
В content_script.js:
chrome.extension.sendRequest({
request: {
op: "pageLoadStarted",
url: document.location.href,
referrer: document.referrer
}
});
В background.html:
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
console.log('onRequest: ' + JSON.stringify(request));
console.log(JSON.stringify(sender));
});
Этот подход позволяет мне получить реферер вкладки, которую язатем можно сопоставить с URL существующей вкладки.Это не всегда взаимно-однозначное сопоставление, поэтому я делаю некоторые дополнительные действия, такие как предпочтение текущей выбранной вкладки в качестве средства открытия, если ее URL-адрес совпадает с реферером новой вкладки.
Это действительно просто хакчтобы приблизить функциональность, которая была бы предоставлена проще и точнее с помощью webNavigation.onBeforeRetarget или window.opener.