Kotlin JS – 访问HTML DOM属性
在Kotlin中访问HTML DOM属性的规范方法是什么? 我没有看到一些像Element
像offsetHeight
& offsetWidth
这样的dom属性
var e : Element? = document.getElementById("text") e.offsetHeight //Error
只要将e
HTMLElement
给HTMLElement
,就可以获得所有您期望的属性。
(e as HTMLElement).offsetHeight
这不是Kotlin的一个特性,我在一个普通的JS文档中找到了这个: https : //developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetHeight
也
因为Kotlin和JavaScript在内部是完全不同的,所以你有权要求一种“规范”的方式去做事情。 这里是我将如何做你的代码片段:
val e = document.getElementById("text")!! as HTMLElement e.offsetHeight
-
在代码中使用
val
而不是var
。 它声明了一个固定的引用,并允许一些代码优化。 http://kotlinlang.org/docs/reference/properties.html#properties-and-fields -
不要使用像
Element?
这样的可空类型Element?
如果你不需要它。 在这种情况下,您可能非常确定您的DOM结构,所以getElementById("text")
必须返回一个元素,而不是null。 放一个断言!!
那里容易您的头脑。 如果你的JS和一个未知的html一起工作,我会更好地处理这种情况:val e = document.getElementById("text") as? HTMLElement ?: throw RuntimeException("the DOM has no 'text' id")