【问题标题】:Calling a Javascript function from an applet从小程序调用 Javascript 函数
【发布时间】:2012-07-20 08:44:30
【问题描述】:

我想要做的就是从 Applet 调用一个 javascript 函数并传递多个变量,我可以只用一个变量来做到这一点,但我想用多个来做到这一点。

从小程序调用 Javascript 函数并传递一个有效的变量:

  msg = "test";
    try {
        getAppletContext().showDocument
                (new URL("javascript:UpdateComputerDetails(\"" + msg + "\")"));
    }
    catch (MalformedURLException me) { }

如何将多个变量传递给该函数?

【问题讨论】:

  • 到目前为止,您在传递两个变量而不是一个变量方面做了什么尝试?我不明白是什么阻碍了你……你有你需要的一切。
  • 是的,我试图传递两个变量,但我正在与语法作斗争,这就是我想要做的:(new URL("javascript:UpdateComputerDetails(\"" + msg + "\ ","" + msg2 + ")"));
  • 试试(new URL("javascript:UpdateComputerDetails('" + msg + "','" + msg2 + "')"));
  • 还将catch (MalformedURLException me) { } 更改为catch (MalformedURLException me) { me.printStackTrace(); } 并复制/粘贴输出作为对问题的编辑。

标签: java javascript applet


【解决方案1】:

有 liveconnect 包,但我不知道它在跨浏览器上的表现如何: http://docs.oracle.com/javase/tutorial/deployment/applet/invokingJavaScriptFromApplet.html

【讨论】:

  • 我只是想改变我拥有的代码,因为它可以工作,它只需要稍微改变一下。
【解决方案2】:

您只想使用:

arg1 = "foo";
arg2 = "bar";
try {
    getAppletContext().showDocument
            (new URL("javascript:UpdateComputerDetails(\"" + arg1 + "\", \"" + arg2 + "\")"));
}
catch (MalformedURLException me) { }

要掌握的难点实际上是构建 URL,因为您必须以一种或另一种方式转义一些东西。您可以通过在 JS 中使用单引号来减轻痛苦:

"javascript:UpdateComputerDetails('" + arg1 + "', '" + arg2 + "')"

现在,您需要注意 arg1arg2(如果您需要更多参数,其他参数也是如此)要么不包含 '(或 ",如果您使用双引号语法),或者在您构建 URL 之前正确转义。

【讨论】:

  • 感谢 Romain 的解释。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-21
  • 2011-04-05
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多