tabs.detectLanguage()
语法
js
let detecting = browser.tabs.detectLanguage(
tabId, // 可选整数
callback // 可选函数
)
参数
tabId
可选-
integer
。默认为当前窗口的活动标签。 callback
可选-
function
。目前,如果指定了tabId
,该方法将使用此回调函数返回结果,而不是返回一个 promise。回调函数接收一个包含检测到的语言代码(例如en
或fr
)的字符串作为唯一输入参数。
返回值
一个 Promise
,其会兑现一个结果为代表 ISO 语言代码的字符串,如 en
或 fr
。有关该方法支持的完整语言列表,请参见 kLanguageInfoTable。对于未知语言,将返回 "und"
(但请参见 bug 1288263)。如果发生任何错误,则该 promise 将以错误消息拒绝。
示例
用户点击浏览器操作时检测并记录活动标签的语言:
js
function onLanguageDetected(lang) {
console.log(`语言是:${lang}`);
}
function onError(error) {
console.log(`发生错误:${error}`);
}
browser.browserAction.onClicked.addListener(() => {
browser.tabs.detectLanguage().then(onLanguageDetected, onError);
});
用户点击浏览器操作时检测并记录每个打开标签的语言(注意此示例需要“tabs”权限):
js
function onLanguageDetected(url, lang) {
console.log(`在 ${url} 中的语言是:${lang}`);
}
function onError(error) {
console.log(`发生错误:${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);
});
浏览器兼容性
BCD tables only load in the browser
备注:
此 API 基于 Chromium 的 chrome.tabs
API。本文档内容源自 Chromium 代码中的 tabs.json
。