ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript はどのようにしてユーザーのブラウザ言語設定を正確に検出できるのでしょうか?

JavaScript はどのようにしてユーザーのブラウザ言語設定を正確に検出できるのでしょうか?

DDD
DDDオリジナル
2024-12-15 00:49:16765ブラウズ

How Can JavaScript Accurately Detect User Browser Language Preferences?

ブラウザの言語設定を検出するための JavaScript アプローチ

JavaScript を使用してブラウザの言語設定を検出すると、特に Internet Explorer と Firefox で構成された設定の場合に課題が生じます。 Chrome や Safari などのブラウザには、言語情報へのアクセスを提供する navigator. language や navigator.userLanguage などのプロパティがありますが、これらのプロパティは、特定のブラウザ メニューで設定された環境設定を反映できないことがよくあります。

ブラウザ設定の制限

主な問題は、ブラウザの設定が、JavaScript を通じてアクセスできる navigator. language プロパティに直接影響しないことです。代わりに、HTTP Accept-Language ヘッダーに影響を与えます。残念ながら、このヘッダーは JavaScript では使用できないため、プログラマーは困惑しています。

サードパーティのスクリプトを使用した回避策

この制限を回避するには、Google App Engine スクリプト (http:/) を使用した回避策が必要です。 /ajaxhttpheaders.appspot.com) が考案されました。このスクリプトは、JSONP 経由で HTTP リクエスト ヘッダーを取得し、Accept-Language ヘッダー値を返します。

使用例

// jQuery example
$.ajax({ 
    url: "http://ajaxhttpheaders.appspot.com", 
    dataType: 'jsonp', 
    success: function(headers) {
        language = headers['Accept-Language'];
        nowDoSomethingWithIt(language);
    }
});

jQuery プラグイン

便宜上、ラップする jQuery プラグインこの機能は GitHub で利用できます。 https://github.com/dansingerman/jQuery-Browser-Language

App Engine コード

次のコードは、AppEngine で実行されるコア ロジックです:

class MainPage(webapp.RequestHandler):
    def get(self):
        headers = self.request.headers
        callback = self.request.get('callback')

以上がJavaScript はどのようにしてユーザーのブラウザ言語設定を正確に検出できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。