0

在我的 Django 网页中,我需要 Javascript 来调用 Java 小程序的公共方法。我想让 java 小程序 POST 一些数据到 DJango 网络服务器,但要做到这一点,我需要 cookie 来验证会话。考虑到这一点,我发现我可以从 JS 调用我的小程序的公共方法,所以我尝试了它,但它失败了。我不知道是哪个问题,或者我是否遗漏了什么。

这是代码。

HTML:

<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.1.min.js"></script>

<applet name="mapGenerator"
    code="MapGenerator.class"
    archive="{{STATIC_URL}}java/MapGenerator.jar"
    width= 500 height = 300>

        <param name=numero_immagini value="{{floor.count}}">
        <param name=id value="{{building.id}}">
        {% for f in floor %}
            <param name=immagine{{forloop.counter0}} value="{{MEDIA_URL}}{{f.link.name}}">
            <param name=numero_piano{{forloop.counter0}} value="{{f.numero_di_piano}}">
        {%endfor%}
</applet>

<script type="text/javascript">
    function initialize() {
        document.mapGenerator.setCookie(document.cookie);
    }
</script>

<body onload="initialize()">

类地图生成器:

public class MapGenerator extends JApplet {

    //... variables

    public void init() {
        numero_immagini = Integer.parseInt(this.getParameter(N_IMMAGINI));
        id_building = Integer.parseInt(this.getParameter(ID_BUILDING));
        images = new BufferedImage[numero_immagini];
        floors = new int[numero_immagini];

        for(int i=0; i< numero_immagini; i++) {
            try {
                URL url = new URL(getCodeBase(), this.getParameter(IMMAGINE+i));
                    images[i] = ImageIO.read(url);
                    floors[i] = Integer.parseInt(this.getParameter(PIANO_IMMAGINE+i));
            } catch (IOException ioe) {ioe.printStackTrace();}
        }
    }

    public void setCookie(String cookie) {
        this.cookie = cookie;
        ed.cookie = cookie;
        System.err.println(cookie);
    }

    public void start() {

        ed = new Editor(this.getContentPane(), images, floors, id_building);                     
        this.add(ed.getPanel());
        Toolkit kit = this.getToolkit();
        Dimension dim = kit.getScreenSize();
        this.setBounds(dim.width/4, dim.height/4, dim.width/4, dim.height/4);
        this.setVisible(true);
        this.repaint();
    }
}

当我打开这个网页时,这是 JS 控制台中的错误:

Uncaught TypeError: Object #<HTMLAppletElement> has no method 'setCookie'

谢谢

4

1 回答 1

0

我不敢相信这是这么愚蠢的事情……

我只需要把脚本

<script type="text/javascript">
    function initialize() {
        document.mapGenerator.setCookie(document.cookie);
    }
</script>

在小程序之前...我要哭了...

于 2012-09-28T14:29:29.460 回答