OperaはChrome拡張機能APIをサポートしているため、このブラウザでフル機能のChrome拡張機能を実行することはほぼ可能です。ただし、APIにはまだいくつかの不足している機能があります。
拡張機能が現在OperaまたはGoogleChromeで実行されているかどうかを確認する簡単で効率的な方法はありますか?
私が直面している特定のユースケースは、呼び出すときですchrome.notifications.create
。GoogleChromeでは、buttons
属性を設定してボタンを追加することができます。Operaはそれをサポートしておらず、属性を無視する代わりに、エラーをスローします。
Unchecked runtime.lastError while running notifications.create: Adding buttons to notifications is not supported.
そのため、エラーを処理するのではなく、事前にブラウザを確認する方法が必要です。
タイトルで間違った質問をしている。通知ボタンがChromeで機能するが、Operaでは機能しない場合は、Operaを検出しようとしないでください。ただし、ボタンが機能していないことを検出し、フォールバックを提供します。例えば:
var options = {
type: 'basic',
iconUrl: '/icon.png',
title: 'My notification',
message: 'My message',
buttons: [{
title: 'Button text',
}],
};
chrome.notifications.create(options, function onCreatedCallback() {
var lastError = chrome.runtime.lastError;
if (lastError && lastError.message === 'Adding buttons to notifications is not supported.') {
delete options.buttons;
chrome.notifications.create(options, onCreatedCallback);
} else if (lastError) {
console.warn('Failed to create notification: ' + lastError.message);
} else {
console.log('Created notification');
}
});
Opera拡張環境を検出してOpera固有の拡張APIを使用したい場合typeof opr == 'object'
は、(Opera専用拡張APIの名前空間)を使用できます。
それ以外の場合は、UAスニッフィングを使用してOperaとChromeを区別できます/OPR/.test(navigator.userAgent)
。
Chrome / Operaの特定のバージョンを検出したいだけの場合(たとえば、ブラウザのバグを検出できないため)、ユーザーエージェントスニッフィングを使用します(私の拡張機能からChromeブラウザのバージョンを見つける方法は?)。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加