Tag: JavaScript

如何将JS代码转换为Kotlin而不使用“新”关键字

我正在考虑转换一些基本的JS到Kotlin,但我卡在new关键字。 我不知道如何将下面的JS转换为Kotlin var FCM = require('fcm-node'); var fcm = new FCM('YOURSERVERKEYHERE'); var message = { … }; fcm.send(message, function(err, response){ … } 我试过了 fun sendTestPush() { val FCM = require("fcm-push") val fcm = new FCM("YOURSERVERKEYHERE") val data = Data("Title", "Message") val message = Message("registration_id", data) fcm.send(message) } data class Message(val to: String, val data: Data) […]

如何交叉编译Java源代码到JavaScript?

给定一组Java源代码文件,我怎样才能将它们编译成一个或多个JavaScript文件,这些文件可以与手工制作的JavaScript一起使用? GWT是一种选择,但是我迄今看到的每一个例子都是为了打造一些奇特的网站。 将Java源代码转换为可与手工JavaScript一起使用的Javascript的简单用例尚未得到充分记录 。 我在这个主题上的GWT邮件列表中开始了一个线程 ,但是对于这是否可行,意见似乎有所混淆。 一个人给了一个非常有用的提示,这是检查GWT出口商 。 问题是源代码和文档都不是现成的,尽管有这个和这个 。 编辑:GWT的出口商的源代码是在这里 我也看到了Java2Script 。 但是,我又一次无法找到如何解决我的简单用例的例子。 这个问题最好的办法是什么? 有什么更好的我失踪?

在Eclipse Maven项目中使用Kotlin Javascript进行DOM操作

在Eclipse中,我有一个Kotlin Javascript Maven项目,其中包含以下pom.xml文件: <project> … <dependencies> <dependency> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-stdlib</artifactId> <version>1.1.51</version> </dependency> <dependency> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-stdlib-js</artifactId> <version>1.1.51</version> </dependency> </dependencies> <build> <sourceDirectory>src/main/kotlin</sourceDirectory> <plugins> <plugin> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-maven-plugin</artifactId> … </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>unpack</id> <phase>compile</phase> <goals> <goal>unpack</goal> </goals> … </execution> </executions> </plugin> </plugins> </build> </project> 如果我做一个正常的println("Hello World!")消息,它会起作用。 但是我不能运行下面的代码: 我做错了什么?

什么工具生成JavaScript?

有什么好的工具来生成JavaScript? 我记得在.NET中,有脚本# – 不知道它今天的地位。 任何人都有任何工具的经验?

你如何建立一个Kotlin多平台构建?

我想建立相同的kotlin源代码到JavaScript和Java(安卓)。 有没有一个标准的方法来实现这一目标?

Javascript Object.defineProperty属性与方法具有相同的名称

我是js世界的新手,并且发现jquery声明了许多属性,使得我非常不舒服。例如$("#foo").parent() ,我认为它应该是一个属性。 我知道js也可以定义属性,所以我想尝试重新定义这些方法到相应的属性。 Object.defineProperty($.fn,"parent", { get:function () { return this.parent() }, configurable:false, enumerable:true }); 那么我可以像这样使用$("#foo").parent 但我有一个stackoverflow jqueryplus.js:180 Uncaught RangeError: Maximum call stack size exceeded at n.fn.init.get [as parent] (jqueryplus.js:180) at n.fn.init.get [as parent] (jqueryplus.js:181) at n.fn.init.get [as parent] (jqueryplus.js:181) at n.fn.init.get [as parent] (jqueryplus.js:181) at n.fn.init.get [as parent] (jqueryplus.js:181) at n.fn.init.get [as parent] (jqueryplus.js:181) at […]

编译为Javascript时使用Kotlin的Java标准库

我在Kotlin中实现了一个在浏览器中使用的库。 当我将其编译为Javascript时,找不到Java标准lib的依赖项,例如像PriorityQueue这样的集合类。 是否有可能说服编译器查找和编译这些类,或者是否有预编译的Javascript-Java标准库,还是只能使用Kotlin标准库?

Nashorn,将java对象传递给javascript以JSON.stringified

我想从Kotlin传递一个数据类到JavaScript,并将其作为JSON序列化: engine.eval("""function jsFunction(pojo) { print(pojo); JSON.stringify({ "field": pojo })}""") engine.invokeFunction("jsFunction", Pojo(a="a", b="b")) 结果我会喜欢将是一个JSON与: { "field": { "a": "a", "b": "b" } } 但是结果是{} print功能打印出Pojo[a=a, b=b] ,因此至少该对象正确传递。 如果我打印的pojo类型,我得到的object 。 如果我做: engine.eval("""function jsFunction(pojo) { print(pojo); JSON.stringify({ "field": pojo.a })}""") engine.invokeFunction("jsFunction", Pojo(a="a", b="b")) 那么我得到: { "field": "a" } 但是,这样做的目的是失败的。 我想获得开箱即用的完整结构。 如果我手动将对象串行化成json,然后将它传递给js函数: engine.eval("""function jsFunction(pojoJson) { pojo = JSON.parse(pojoJson); print(pojo); […]

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

我试图动态创建一个图像,然后我将附加到DOM。 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()因为HTMLImageElement是一个接口。 删除构造函数和Kotlin抱怨img必须被初始化。 什么是以类型安全的方式使用HTMLImageElement的正确方法? 更新 :我现在正在使用maven生成所有的应用程序。 <?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> […]

什么阻止HtmlUnit加载PSN商店页面?

我试图用HtmlUnit加载Playstation商店页面,但看起来像加载的所有内容是“加载…”文本(和一点点的JavaScript)的空白页面。 我使用下面的配置使HtmlUnit工作,但绝望(它的kotlin): @Test @Throws(Exception::class) fun homePage() { val webClient = WebClient(BrowserVersion.INTERNET_EXPLORER).apply { ajaxController = NicelyResynchronizingAjaxController() options.isUseInsecureSSL = true options.isThrowExceptionOnScriptError = false options.isJavaScriptEnabled = true options.isCssEnabled = true options.isRedirectEnabled = true options.isThrowExceptionOnFailingStatusCode = false options.isUseInsecureSSL = true options.isDownloadImages = true cookieManager.isCookiesEnabled = true waitForBackgroundJavaScript(10000) waitForBackgroundJavaScriptStartingBefore(10000) } val page = webClient.getPage<HtmlPage>("https://store.playstation.com/") Thread.sleep(10000) assertFalse(page.asXml().contains("Loading")) } 我在加载页面时看不到任何特定的错误: мая 09, […]