在KotlinJS中使用标准HTML元素安全地输入

时间:2016-05-31 06:07:15

标签: javascript kotlin

我正在尝试动态创建一个图像,然后我将附加到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.jsblah.js.mapblah.js.metakotlin.jskotlinx.html.jskotlinx.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")自动填充到divdocument.create...等,不{{1}无处不在的方法。 (文件来自包'kotlin.browser')。

我不确定如何使用createAttribute因为我在IntelliJ中看到的与文档不匹配。

如何使用KotlinJS将动态创建的图像附加到现有div?

1 个答案:

答案 0 :(得分:1)

我只是用 kotlin2js kotlinx.html IRus/kotlin-kotlinx.html编写示例项目。看起来当前版本的 kotlinx.html (0.5.8)与Kotlin 1.0.2不兼容,但与kotlin 1.0.1-2兼容。