我正在尝试动态创建一个图像,然后我将附加到DOM。
tagDataContainer.getDeliveryGroupMap().values().stream().filter(dg -> {
Sets.SetView<Long> intersection = Sets.intersection(Sets.newHashSet(dg.getPlacements()), Sets.newHashSet(placementsToChangeStatusToPublish));
return intersection.size()>0;
}
);
但是,它不像我的构造函数import org.w3c.dom.HTMLImageElement
fun main(args: Array<String>) {
// load footer banner image
val img: HTMLImageElement = HTMLImageElement()
with (img){
src = "img/footer.png"
classList.add("img-responsive")
}
}
,因为HTMLImageElement()
是一个接口。
删除构造函数和Kotlin抱怨必须初始化HTMLImageElement
。
以类型安全的方式使用img
的正确方法是什么?
更新:我现在正在使用maven来生成应有的所有内容。
HTMLImageElement
汇编了<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.blah</groupId>
<artifactId>blah</artifactId>
<packaging>jar</packaging>
<version>1.0.0</version>
<name>Blah</name>
<properties>
<kotlin.version>1.0.2</kotlin.version>
<kotlin.html.version>0.5.8</kotlin.html.version>
</properties>
<repositories>
<repository>
<id>bintray-kotlinx</id>
<name>bintray</name>
<url>http://dl.bintray.com/kotlinx/kotlinx</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.jetbrains.kotlinx</groupId>
<artifactId>kotlinx.html.js</artifactId>
<version>${kotlin.html.version}</version>
</dependency>
</dependencies>
</project>
,blah.js
,blah.js.map
,blah.js.meta
,kotlin.js
,kotlinx.html.js
,kotlinx.html.meta.js
,{{ 1}}和kotlinx.html.shared.js
。
在我的html文件(位于我的根目录中)中,我包含以下内容:
kotlinx.html.shared.meta.js
我的stdlib.meta.js
中有一个<script type="text/javascript" src="js/jquery-1.12.4.js"></script>
<script type="text/javascript" src="js/bootstrap.js"></script>
<script type="text/javascript" src="target/classes/kotlin.js"></script>
<script type="text/javascript" src="target/classes/kotlinx.html.shared.js"></script>
<script type="text/javascript" src="target/classes/blah.js"></script>
,它在浏览器中在浏览器打印“hello world”中执行正常。
现在我仍然希望使用Kotlin动态追加该图像......
文档说我应该println("hello world")
创建Main.kt
,但document.create.div("panel")
自动填充到div
,document.create...
等,不{{1}无处不在的方法。 (文件来自包'kotlin.browser')。
我不确定如何使用createAttribute
因为我在IntelliJ中看到的与文档不匹配。
如何使用KotlinJS将动态创建的图像附加到现有div?
答案 0 :(得分:1)
我只是用 kotlin2js 和 kotlinx.html IRus/kotlin-kotlinx.html编写示例项目。看起来当前版本的 kotlinx.html (0.5.8)与Kotlin 1.0.2不兼容,但与kotlin 1.0.1-2兼容。