栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java小程序和网页上的文本输入控件之间的桥梁

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java小程序和网页上的文本输入控件之间的桥梁

您可以在Applet和
页面上的任何javascript方法之间进行全面交流。Kyle在一篇很好的文章中演示了Javascript如何调用
小程序并请求文本值。但是,我假设您希望HTML
文本字段在每次单击鼠标时都更新,这意味着该applet需要
与页面进行通信。我会将您的Javascript修改为
以下形式:

var activetextarea = null;$('textarea, input').click(function() {    $(this).dasher();    activetextarea = this;});function updateText(text) {     // Careful: I think textarea and input have different      // methods for setting the value. Check the      // jQuery documentation     $(activetextarea).val(text); }

假设您拥有该applet的源代码,则可以使其与
上述javascript函数通信。添加此导入:

import netscape.javascript.JSObject;

然后,在您具有用于鼠标单击的onClick处理程序中,添加:

// After the Applet Text has been updatedJSObject win = null;try {    win = (JSObject) JSObject.getWindow(Applet.this);    win.call("updateText", new Object[] { textBox.getText() });} catch (Exception ex) {    // oops}

每次调用代码块时,这都会更新文本。如果您
无权访问applet源,那么事情将变得更加棘手。您需要设置
某种方式的javascript超时,该方式会不断从
applet读取值,但是这假定applet具有返回
文本框值的方法。

另请参见:http : //java.sun.com/products/plugin/1.3/docs/jsobject.html

更新修改小程序是您的最佳选择,因为这
将触发任何事件。例如,如果您希望HTML TextField
在每次单击时都发生更改,则该单击发生在applet中,
如上所述,您需要对其进行修改以触发更新。不修改
小程序,我看到两个选择。选项#1使用计时器:

var timer;var activetextarea;$('textarea, input').click(function() {    $(this).dasher();    activetextarea = this;    updateText();}function updateText() {    // Same warnings about textarea vs. input    $(activetextarea).val($('#appletId')[0].getCurrentEditBoxText());    timer = setTimeout("updateText()", 50);}function stopUpdating() {    clearTimeout(timer);}

这类似于上面的代码,不同之处在于单击文本区域会触发
循环功能updateText(),该功能将
每隔50ms将HTML文本字段的值设置为Applet文本字段的值。这可能会
在点击和更新之间引入较小的延迟,但是它会很小。您可以
增加计时器频率,但这会增加性能消耗。我看
不到“隐藏”小程序的位置,但是应该调用相同的函数,
stopUpdating以便我们不再试图联系隐藏的小程序。

选项#2(未编码)

我将尝试捕获Applet
在HTML Dom中冒出的点击。然后,您可以跳过计时器,将click()行为放在
Applet容器上以进行相同的更新。但我不确定此类事件是否会
冒泡,因此不确定是否会奏效。即使是这样,我也不知道
它在各个浏览器之间的兼容性如何。

选项#3

第三种选择是不要在每次单击时更新HTML文本字段。这
仅仅是Kyle和我在上面的帖子的结合,以便
在您每次用applet“完成”时设置文本字段的值。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/428399.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号