此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

tabs.detectLanguage()

使用紧凑语言检测器(CLD)检测标签页内容的主要语言。

这是一个返回 Promise 的异步函数。

语法

js
let detecting = browser.tabs.detectLanguage( tabId, // 可选整数 callback // 可选函数 ) 

参数

tabId 可选

integer。默认为当前窗口的活动标签。

callback 可选

function。目前,如果指定了 tabId,该方法将使用此回调函数返回结果,而不是返回一个 promise。回调函数接收一个包含检测到的语言代码(例如 enfr)的字符串作为唯一输入参数。

返回值

一个 Promise,其会兑现一个结果为代表 ISO 语言代码的字符串,如 enfr。有关该方法支持的完整语言列表,请参见 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); }); 

浏览器兼容性

备注: 此 API 基于 Chromium 的 chrome.tabs API。该文档衍生自 Chromium 代码中的 tabs.json