2011-12-11 5 views
2

JavascriptのWindows 8 Metroアプリケーションは、環境がどのように検出されますか?JavascriptからWin8/Metroを検出する方法

更新:私のJavascriptコードは、ブラウザとWin8アプリケーションの両方で実行されます。 Win8アプリケーションはJSコードのセキュリティ制限を課すため、Win8アプリケーションでコードが実行されていることを検出したいと考えています。

答えて

2

を検出するためのプロパティ:これを検出する

一つの方法は、いくつかのMS固有のオブジェクトまたは名前空間の存在を確認することです。それらの1つはWindowsです。たとえば:

if (typeof Windows != "undefined") { 
    // Running in Win8 app 
} else { 
    // Running in a browser 
} 
+1

--WRR名前空間(JSでオブジェクトとして投影されています)の存在を検出することもできます - 特にルート 'Windows'名前空間。 –

+0

誰かが '({})。toString.call(Windows)'が何であるか見ることができますか?これは、より堅牢な検出である可能性があります。 –

0

私はあなたが使用できると思う:

 
WorkerNavigator.useragent 

自分自身に答えることに

+0

を、あなたは正確に何を提案していますか?そのプロパティの存在はWin8/Metroのための良いテストですか、あるいはユーザーエージェントの内容を見なければなりませんか?信頼できるとは言えません。 – Kyberias

+0

さて、確かに、プロパティテストは、ユーザーエージェントよりも良い方法です。 –

0

私はこのコードを使用します

var isWinJS = !!window.Windows && /^ms-appx:/.test(location.href); 
関連する問題