如何在 scalajs 中配置 boostrap 消毒器
How to configure the boostrap sanitizer in scalajs
我正在使用一个 bootstrap 弹出框,它的内容中包含一个 canvas 标签。我不知道为什么 canvas 标签没有出现,直到我遇到这个 。
所以我想我需要 运行 以下 javascript 代码:
$.fn.popover.Constructor.Default.whiteList.canvas = [];
如何在 scalajs 中执行此操作?
很简单:
import scala.scalajs.js
js.Dynamic.global.$.fn.popover.Constructor.Default.whiteList.canvas = js.Array()
我尝试使用:
js.Dynamic.global.$.fn.popover.Constructor.Default.whiteList.canvas = js.Array()
但是会导致下面的错误
TypeError: $g.$ is undefined
我想这与我使用的是 querki jquery-facade 有关。所以这让我找到了以下有效的解决方案:
$.fn.asInstanceOf[js.Dictionary[js.Object]]("popover")
.asInstanceOf[js.Dictionary[js.Object]]("Constructor")
.asInstanceOf[js.Dictionary[js.Object]]("Default")
.asInstanceOf[js.Dictionary[js.Object]]("whiteList")
.asInstanceOf[js.Dictionary[js.Object]].put("canvas", js.Array())
我添加了以下隐含的class
implicit class ObjectEnhancer(obj: js.Object) {
class DynamicDict(obj: js.Object) extends Dynamic {
private val dict = obj.asInstanceOf[js.Dictionary[js.Object]]
def selectDynamic(name: String) = new DynamicDict(dict(name))
def updateDynamic(name: String)(value: js.Object) = dict.put(name, value)
}
def asDyn = new DynamicDict(obj)
}
这让我可以用更简洁的方式来写:
$.fn.asDyn.popover.Constructor.Default.whiteList.canvas = js.Array()
我正在使用一个 bootstrap 弹出框,它的内容中包含一个 canvas 标签。我不知道为什么 canvas 标签没有出现,直到我遇到这个
所以我想我需要 运行 以下 javascript 代码:
$.fn.popover.Constructor.Default.whiteList.canvas = [];
如何在 scalajs 中执行此操作?
很简单:
import scala.scalajs.js
js.Dynamic.global.$.fn.popover.Constructor.Default.whiteList.canvas = js.Array()
我尝试使用:
js.Dynamic.global.$.fn.popover.Constructor.Default.whiteList.canvas = js.Array()
但是会导致下面的错误
TypeError: $g.$ is undefined
我想这与我使用的是 querki jquery-facade 有关。所以这让我找到了以下有效的解决方案:
$.fn.asInstanceOf[js.Dictionary[js.Object]]("popover")
.asInstanceOf[js.Dictionary[js.Object]]("Constructor")
.asInstanceOf[js.Dictionary[js.Object]]("Default")
.asInstanceOf[js.Dictionary[js.Object]]("whiteList")
.asInstanceOf[js.Dictionary[js.Object]].put("canvas", js.Array())
我添加了以下隐含的class
implicit class ObjectEnhancer(obj: js.Object) {
class DynamicDict(obj: js.Object) extends Dynamic {
private val dict = obj.asInstanceOf[js.Dictionary[js.Object]]
def selectDynamic(name: String) = new DynamicDict(dict(name))
def updateDynamic(name: String)(value: js.Object) = dict.put(name, value)
}
def asDyn = new DynamicDict(obj)
}
这让我可以用更简洁的方式来写:
$.fn.asDyn.popover.Constructor.Default.whiteList.canvas = js.Array()