2017-02-02 11 views
0

Пакет org.scalajs.dom.experimental содержит фасад для Fullscreen API. Похоже, что текущие реализации представляли собой префикс поставщика, по крайней мере для Chrome и Firefox. Как я могу использовать этот фасад для работы с префиксом браузера поставщика?Как обрабатывать префикс поставщика для обработчиков событий в Scala.js?

ответ

1

Простейшим решением является полиза API с его специфицированным именем, перенаправление на версии с префиксом поставщика. Например, в файле JavaScript:

if (!Document.prototype.hasOwnProperty("fullscreenEnabled")) { 
    if (Document.prototype.hasOwnProperty("webkitFullscreenEnabled")) 
    Object.defineProperty(Document.prototype, "fullscreenEnabled", { 
     get: function() { return this.webkitFullscreenEnabled; } 
    } 
    } 
} 

или, в Scala.js:

import scala.scalajs.js 
import js.DynamicImplicits._ 
import js.Dynamic.{global => g} 

if (!g.Document.prototype.hasOwnProperty("fullscreenEnabled")) { 
    if (g.Document.prototype.hasOwnProperty("webkitFullscreenEnabled")) 
    js.Object.defineProperty(g.Document.prototype, "fullscreenEnabled", js.Dynamic.literal(
     get = { (thiz: js.Dynamic) => thiz.webkitFullscreenEnabled; }: js.ThisFunction 
    ) 
    } 
} 
+0

Ницца. Возможно ли также заполнять обработчики событий? Как я могу заставить обработчиков, зарегистрированных в 'onfullscreenerror', запускаться на' onwebkitfullscreenerror'? – Suma

+0

Хмм, понятия не имею. Вам было бы лучше повезло бы этому в веб-сообществе в целом. – sjrd

 Смежные вопросы

  • Нет связанных вопросов^_^