语法
js
let detecting = browser.tabs.detectLanguage(
tabId, // optional integer
callback // optional function
)
参数
tabId可选-
integer。默认为当前窗口的活动标签页。 callback可选-
function。当前,如果指定了tabId,则此方法将使用此回调来返回结果,而不是返回一个 Promise。回调的唯一输入参数是一个包含检测到的语言代码(例如en或fr)的字符串。
返回值
一个 Promise,它将以代表 ISO 语言代码(例如 en 或 fr)的字符串解析。有关此方法支持的语言的完整列表,请参阅 kLanguageInfoTable。对于未知语言,将返回 "und"(但请参阅 bug 1288263)。如果发生任何错误,Promise 将被拒绝并显示错误消息。
示例
当用户点击浏览器操作时,检测并记录活动标签页的语言。
js
function onLanguageDetected(lang) {
console.log(`Language is: ${lang}`);
}
function onError(error) {
console.log(`Error: ${error}`);
}
browser.browserAction.onClicked.addListener(() => {
browser.tabs.detectLanguage().then(onLanguageDetected, onError);
});
当用户点击浏览器操作时,检测并记录每个打开标签页的语言(请注意,此示例需要 "tabs" 权限)。
js
function onLanguageDetected(url, lang) {
console.log(`Language in ${url} is: ${lang}`);
}
function onError(error) {
console.log(`Error: ${error}`);
}
function detectLanguages(tabs) {
for (const tab of tabs) {
browser.tabs
.detectLanguage(tab.id)
.then((lang) => onLanguageDetected(tab.url, lang), onError);
}
}
browser.browserAction.onClicked.addListener(() => {
browser.tabs.query({}).then(detectLanguages, onError);
});
浏览器兼容性
加载中…
注意: 此 API 基于 Chromium 的 chrome.tabs API。本文档源自 Chromium 代码中的 tabs.json。