2017-02-14 12 views
0

Я генерирую html-файлы, которые используются как оффлайн-отчет с помощью bokeh. Отчет содержит некоторые графики с линейными глифами. С хром webgl отлично работает, а график zomming и т. Д. Работает гладко.Отключить webgl на стороне клиента bokeh

Но с интернет-исследователем графики работают только с отключенным webgl. (Ошибка зарегистрирована here). Поэтому я хочу отключить webgl на стороне клиента (так что пользователи хрома по-прежнему имеют плавный пользовательский интерфейс, он должен быть включен для пользователей Chrome). Отключение webgl - это всего лишь временное решение, пока ошибка не будет исправлена.

Можно ли отключить webgl для целого документа или вообще на стороне клиента с помощью javascript? Как бы вы это сделали?

Я использую бок 0.12.4

ответ

0

Я не совсем уверен, что вы просите. Я думаю, у вас есть библиотека, которая использует WebGL, и вы не можете сказать это не напрямую.

В этом случае вы могли бы сделать что-то вроде

HTMLCanvasElement.prototype.getContext = (function(origFn) { 
    return function(type) { 
    if (type === "webgl" || type === "experimental-webgl") { 
     return null; 
    } 
    origFn.apply(this, arguments); 
    }; 
}(HTMLCanvasElement.prototype.getContext)); 
+0

Спасибо за общий ответ, но doesen't решить проблему, так как ошибка все еще остается с некоторыми версиями интернет-проводник, которые поддерживают WebGL. (проблема очень специфична для библиотеки bokeh) – renzop

+0

Просто проверяйте, но вы помещаете этот код * перед * любым скриптом, включающим bokeh? – gman

+0

Да, но тогда библиотека bokeh бросает вызов: «Uncaught TypeError: Невозможно установить свойство« glcanvas »неопределенного« Но я понимаю вашу идею ... Я думаю, мне просто нужно вложить в нее какую-то работу. Просто переключился на другой проект. – renzop