アプリ版:「スタンプのみでお礼する」機能のリリースについて

JSPでボタンを押したらマウスの位置が変わるようなプログラムを作成しています。
Onclickで関数に飛ばしたのですが、関数が機能しません。(alertは機能するので、関数には入っています)
この関数に飛ぶにはどうしたらいいのでしょうか?

以下ソース

<script type="text/javascript">
<!--
function a(){
<%
Robot r = new Robot() ;

r.mouseMove(200, 200);

%>
alert("asdasd") ;

}
-->
</script>

~中略~

<input type="button" name="ButtonName" value ="停止" onclick="a()" />

A 回答 (3件)

念のため。

先ほどの回答の
<jsp:plugin
  type="アプレット"
の部分は
<jsp:plugin
  type="applet"
の間違いです。すみません。

自分の環境では、jspとclassファイルを配置すれば動作確認できました。
ブラウザによって違いがあるかもしれません。IE8では動きましたがchromeではダメでした。

また、classファイルの置き場所が悪いのかもしれません。
コンテキストルートの直下に置くか、<jsp:plugin>タグのcodebaseを適宜修正してください。

なかなか上手く説明できずに申し訳ありません。

この回答への補足

私もIE8ですね・・・。
javaをcjavaでコンパイルして、classファイルを生成。
後はjspを同じファイルの中において実行…。
何かおかしいですかね?

補足日時:2010/07/23 15:40
    • good
    • 0

すみません。

JavaScriptだけでは出来ないようですね。
アプレットと連携させれば実現できそうです。
アプレットは今まで一度も触ったことがないので
おかしいところが多々あると思いますので、参考程度に見てください。

<pre>
[jsp]
<jsp:plugin
  type="アプレット"
  code="TestApp.class"
  codebase="."
  name="ap"
  height="0" width="0" >
  <jsp:fallback>
    <p> 読み込み失敗 </p>
  </jsp:fallback>
</jsp:plugin>

<form>
  <input type="button" value="マウス移動" onClick="ap.mouseMove(100, 100);">
</form>

[TestApp.java]
import java.applet.Applet;
import java.awt.*;

public class TestApp extends Applet {
  //とりあえず必要な処理のみ
  public void mouseMove(int x, int y) {
    try {
      System.out.println("start");
      Robot robot = new Robot();
      robot.mouseMove(x, y);
    } catch (Exception e) {
      e.printStackTrace();
    }  
  }
}

ただ、アプレット内でRobotオブジェクトを生成できるようにするのは
セキュリティに問題があるようなので、十分に注意してください。
※ソースはインデント用に全角スペースを入れてあるので、実行時は適当に置き換えてください

この回答への補足

回答ありがとうございます。
ソースをコピペしてためしましたが、エラーも出ず、動かず状態でした。
アプレットは私もよくわからないので、少し勉強してみたいと思います。
この場合サーバーにあげるのは、jspファイルと、classファイルだけなのでしょうか?
一応javaファイルなども全部あげましたが分からなかったです・・。

補足日時:2010/07/21 15:50
    • good
    • 0

関数は機能しています。


JavaとJavaScriptがきちんと区別できていないのでは?
Java(スクリプトレット)はサーバーで実行され、JavaScriptはクライアント(ブラウザ)で実行されます。
ですので実際に動作する関数の処理は、htmlとして出力されたソースの内容になります。(外部ファイルだったりもしますが)
該当のページのソースをブラウザで見てみてください。function a にはalert文しか出力されていないですよね?

ということで、JavaScriptで希望する処理のソースを書いてください。

この回答への補足

つまりmouseMoveではマウスは動かない、ということでしょうか?
javascript でもマウス座標指定関数を探しましたが、いまいち見つかりませんでした。
この場合どのようにすればマウスは動くのでしょうか?

補足日時:2010/07/21 09:42
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!