0
パッケージorg.scalajs.dom.experimental
には、Fullscreen APIのファサードが含まれています。現在の実装では、少なくともChromeとFirefoxのプレフィックスが付けられているようです。このファサードをベンダープレフィックス付きのブラウザで使用するにはどうすればよいですか?Scala.jsでイベントハンドラのベンダープレフィックスを処理する方法は?
パッケージorg.scalajs.dom.experimental
には、Fullscreen APIのファサードが含まれています。現在の実装では、少なくともChromeとFirefoxのプレフィックスが付けられているようです。このファサードをベンダープレフィックス付きのブラウザで使用するにはどうすればよいですか?Scala.jsでイベントハンドラのベンダープレフィックスを処理する方法は?
最も簡単な解決策は、ベンダープレフィックス付きのバージョンにリダイレクトする、指定された名前でAPIをポリフィルすることです。例えば、JavaScriptファイル内:Scala.jsで
if (!Document.prototype.hasOwnProperty("fullscreenEnabled")) {
if (Document.prototype.hasOwnProperty("webkitFullscreenEnabled"))
Object.defineProperty(Document.prototype, "fullscreenEnabled", {
get: function() { return this.webkitFullscreenEnabled; }
}
}
}
または、:
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
)
}
}
ニース。イベントハンドラをポリフィルすることは可能ですか? 'onwebkitfullscreenerror'で' onfullscreenerror'に登録されたハンドラを起動させるにはどうすればいいですか? – Suma
ハム、いい考えはありません。あなたは、Webコミュニティ全体の運が良いと思うでしょう。 – sjrd