我試圖通過Chrome擴展插件獲取與當前標籤關聯的進程ID。從Chrome擴展中獲取Chrome標籤頁pid
我確實設法通過chrome.processes
實驗API。
有什麼辦法可以通過標準(非實驗性)API獲取標籤頁pid?
我試圖通過Chrome擴展插件獲取與當前標籤關聯的進程ID。從Chrome擴展中獲取Chrome標籤頁pid
我確實設法通過chrome.processes
實驗API。
有什麼辦法可以通過標準(非實驗性)API獲取標籤頁pid?
如果你想獲得真正的進程ID(即一個可以被其他程序用來識別過程),那麼你唯一的選擇是chrome.processes
,但此API僅適用於Dev channel(對於Chrome穩定版和Beta版不適用)。
如果您只需要一個標識符來唯一標識進程,那麼您可以通過chrome.webNavigation
API獲取「標籤的進程ID」。此ID僅在Chrome中有意義。在深入研究細節之前,我們首先說多個選項卡可以共享相同的進程ID,並且一個選項卡可以包含多個進程(啓用Site isolation project時)。
所以,通過「選項卡PID」,我假定您指的是託管頂級框架的進程。然後你可以檢索幀列表和提取的過程中ID爲標籤如下:
background.js
'use strict';
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.webNavigation.getAllFrames({
tabId: tab.id,
}, function(details) {
if (chrome.runtime.lastError) {
alert('Error: ' + chrome.runtime.lastError.message);
return;
}
for (var i = 0; i < details.length; ++i) {
var frame = details[i];
// The top-level frame has frame ID 0.
if (frame.frameId === 0) {
alert('Tab info:\n' +
'PID: ' + frame.processId + '\n' +
'URL: ' + frame.url);
return; // There is only one frame with ID 0.
}
}
alert('The top-level frame was not found!');
});
});
的manifest.json
{
"name": "Show tab PID",
"version": "1",
"manifest_version": 2,
"background": {
"scripts": ["background.js"],
"persistent": false
},
"browser_action": {
"default_title": "Show tab PID"
},
"permissions": [
"webNavigation"
]
}
沒有,是除了實驗API沒有其他辦法chrome.processes
謝謝,但我需要的操作系統在鉻外使用的PID。 – AK87