当前位置:  技术问答>java相关

????? help!在IE中用Applet如何访问所在的HTML吗?

    来源: 互联网  发布时间:2014-12-27

    本文导语:  用javascript可以访问html页面中的内容,比如document.body.innerHTML, 用applet可以做到这些功能吗(包括对html事件的相应,如的onclick)? 我想用applet做一个页面布局的控制器, 谁能帮我,20分全给,3x!!!!! | ...

用javascript可以访问html页面中的内容,比如document.body.innerHTML,
用applet可以做到这些功能吗(包括对html事件的相应,如的onclick)?
我想用applet做一个页面布局的控制器,
谁能帮我,20分全给,3x!!!!!

|
找到applet调用网页中的javascript的例子:
Netscape only
A Javascript function is called from Java by using the showDocument method. A URL is needed with "javascript:" as the protocol. 
[Java applet] import java.applet.*;
import java.net.*;

public class inJava extends Applet{
  public void init(){
    String msg = "We will jump to an HTML tag";
    try {
      getAppletContext().showDocument
        (new URL("javascript:doAlert("" + msg +"")"));
      getAppletContext().showDocument
        (new URL("javascript:jumpTo("#JUMP")"));
      }
    catch (MalformedURLException me) { }
    } 
  }
 



[Javascript and HTML] 

function doAlert(s) {
   alert(s);
   }
function jumpTo(tag) {
   self.location=tag;
   }




jump here from Java via Javascript


 



Netscape AND Microsoft Internet Explorer v4
With IE4, Microsoft included the Netscape package netscape.javascript.* to allow a JAVA applet access to Javascript objects. To compile such Applet, you must adjust the CLASSPATH to include the Netscape java40.jar. To use the Netscape JAR, the CLASSPATH will look like this: set CLASSPATH=
   .;c:windevjdk1.1.3libclasses.zip;
           c:Program FilesNetscapeCommunicatorProgramJavaClassesjava40.jar;
 


Note that your CLASSPATH may be different depending on your JDK installation/version 
To compile with IE, first locate the javapackages directory in the Windows or WinNt directory. You will find a bunch a zip files with strange names. On my installation (IE5), the file Qk1r3vrp.zip is the one containing the 2 classes you need, JSObject.class and JSException.Class. Include this zip in the classpath before compiling (or you can extract the 2 files (with directory) and create a new smaller ZIP (again with the directory) and use the new zip in the classpath). Note that if you compile with the Microsoft compiler, you don't need to do this. 

NOTE: Here, you find will a a JAR containing the required objects to compile classes using the LiveConnect mechanism. This jar file can be used in the CLASSPATH to build MAYSCRIPT applets. Note that the jar is good only at compile time. 

In the following example, you type in the TextField a Javascript function and press the button to execute the function. For example, try alert('Hello from JAVA'). Or you can execute function defined on the same page as the Applet. The Applet must contains the MAYSCRIPT parameter to be able to use JSObject. import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import netscape.javascript.*;

public class jsJAVA extends Applet implements
    ActionListener {
  Button b;
  TextField t;
  
  public void init() {
     t = new TextField(20);
     add(t);
     b = new Button("execute Javascript");
     add(b);
     b.addActionListener(this);
     }
  
  public void actionPerformed(ActionEvent ae) {
     if (ae.getSource() == b) {
       JSObject win = (JSObject) JSObject.getWindow(this);
       win.eval(t.getText());
       }
     }
  }
 



Another way is to use the Reflection API. That way you don't need to modify your CLASSPATH for compilation or even import the netscape.jsobject package. // posted by C Werner on the realhowto list
import java.lang.reflect.*;
...
// Somewhere in the applet class ...
...
String jscmd = "window.close()";  /* JavaScript command */
String jsresult = null;
boolean success = false;
try {
  Method getw = null, eval = null;
  Object jswin = null;
  Class c = 
    class.forName("netscape.javascript.JSObject"); /* does it in IE too */
  Method ms[] = c.getMethods();
  for (int i = 0; i 


    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • ***************Help.怎样在Applet中弹出一网页?***************
  • help me(在线等待,关于applet的问题)
  • 发布Applet不能添加图片,。。。。help
  • HELP!!!APPLET小小小游戏求助!
  • java命名空间java.awt.event类keyevent的类成员方法: vk_help定义及介绍
  • help!!!help!!!help!!!help!!!help!!!help!!!help!!!
  • Help!!!!!!!!Help!!!!!!!!Help!!!!!!!!
  • 高手帮忙--HELP!HELP!HELP!!!
  • 100————>help,help
  • HELP!!HELP!!!
  • help!help!……关于双系统的问题
  • help help
  • 系统安装问题!Help、Help !
  • help! help! RAMDisk的制作, 100分
  • help help busy!!! 请问如何让一个进程进入dead状态或者编程实现让一个进程进入dead状态
  • 用PQ后,grub不好用了,help,help,
  • help,如何在vmware下安装iso的liunx.9.0呀,help
  • help啊help....
  • 【help】关于linux和windows 2000 pro 双系统的问题【help】
  • help,anybody,nobody,help?能帮帮忙吗?有人明白吗?还是我发过帖子的那个问题:(
  • 有关inetd.conf和xinetd.conf的问题!!!(help,help!!!)
  • HELP!HELP!!w2k与linux用网卡直连,怎么连?快急死了
  • 大家看看:有点纳闷,为什么linux下的参数那么多重复的?那么多求助的方式?比如一会儿用--help一会儿又是-help一会儿又变成/?了
  • help help busy!!! 知道进程的ID号,在程序里如何检查这个进程还在不在?
  • SCO UNIX & WIN2K help!!!急急急help,高分(30)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3