ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript を使用してブラウザの優先言語を検出するにはどうすればよいですか?

JavaScript を使用してブラウザの優先言語を検出するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-12 19:20:10185ブラウズ

How Can I Detect a Browser's Preferred Language Using JavaScript?

ブラウザーの優先言語を検出するための JavaScript

JavaScript を使用してブラウザーの優先言語を検出することは、ナビゲーターから直接アクセスできないため、難しい場合があります。言語。これは、ブラウザの設定が HTTP の「Accept-Language」ヘッダーに影響し、JavaScript からアクセスできないためです。

この制限を克服するには、Google App Engine などのサードパーティ サービスを使用することが回避策です。仕組みは次のとおりです:

  1. Google App Engine スクリプトを作成します: https://ajaxhttpheaders.appspot.com でスクリプトをホストします。このスクリプトは、JSONP 経由で HTTP リクエスト ヘッダーを返します。
  2. AJAX リクエストを作成します: jQuery または同様のライブラリを使用して、Google App Engine スクリプトに AJAX リクエストを作成します。
  3. 応答を解析します: 応答には「Accept-Language」ヘッダーが含まれます。その後、解析された言語値を使用できます。

jQuery のコード例を次に示します。

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

このハックは、バックエンドがない場合にのみ推奨されることに注意してください。このタスクを実行するには、

より便利なソリューションとして、次の場所で入手可能な jQuery-Browser-Language プラグインを使用できます。 https://github.com/dansingerman/jQuery-Browser-Language.

AppEngine で実行されているコードは次のとおりです:

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

        if callback:
          self.response.headers['Content-Type'] = 'application/javascript'
          self.response.out.write(callback + "(")
          self.response.out.write(headers)
          self.response.out.write(")")
        else:
          self.response.headers['Content-Type'] = 'text/plain'
          self.response.out.write("I need a callback=")

コードは https:// でオープンソース化されています。 github.com/dansingerman/app-engine-headers.

以上がJavaScript を使用してブラウザの優先言語を検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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