2017-01-05 27 views

答えて

0

WebGLの検出は、フロントエンド(Proper way to detect WebGL support?を参照)でJavaScriptを使用するための問題です。このため、バックエンドでDjangoビューで直接行う方法はないと思います。

ユーザーが訪問した最初のページでJavaScriptを使用して検出を実行し、AJAXを使用してWebGL機能を使用するかどうかを決定するための後続のリクエストで使用できるサーバー側変数に結果を保存します。クライアントは、WebGLのサポート

var canvas = document.getElementById("canvas"); 
    var names = ["webgl", "experimental-webgl", "webkit-3d", "mozwebgl"]; 
    var webgl_supported = false; 

    for(var i in names) { 
     try { 
      gl = canvas.getContext(names[i], { }); 

      if (gl && typeof gl.getParameter == "function") { 
       webgl_supported = true; 
       break; 
      } 
     } catch(e) { } 
    } 

    var xmlhttp = new XMLHttpRequest(); 
    xmlhttp.open("POST", "/webgl_enabled_handler"); 
    xmlhttp.setRequestHeader("Content-Type", "application/json; charset=UTF-8"); 
    xmlhttp.send(JSON.stringify({webgl_enabled: webgl_supported })); 

を持ってwheterブードゥー教の答えに拡大

+0

から一般的なGETリクエストによってWebGLのサポートを決定する方法があります疑うページのロード後ジャンゴするPOSTリクエストとして送信されるこの情報は、その方法はあります要求によって与えられますか?要求と同じGET、POST、COOKIESなどを提供します。したがって、WEBGLCOMPATIBLEまたは同様の変数を呼び出す – Ignasi

+0

@Ignasiにはわかりません。 –

+0

ありがとう@ブードゥー・バーガー! – Ignasi

0

、ここですぐに決定するためにJavaScriptがあるこれは、HTMLページ/テンプレートにIDが「キャンバス」とcanvas要素があることを前提としています。

結果のJSON

は、残念ながら私はジャンゴ

+2

FYI: "webkil-3d"と "mozwebgl"は必要ありません。彼らは2010年のように数ヶ月のことだったし、長い間行ってしまった。同様に、「experimental-webgl」は、WebGL実装がまだ仕様に準拠していないため、この時点でEdgeによってのみ使用されます。 – gman

関連する問題