prototype.jsを利用しているのですが、

IE7では動作するのですが、FireFix(2.0)では動きません。

実行時に呼び出されるスクリプトは以下のようになっています。
※「sample.php」は現在時刻を返します

function execute() {

alert('1');

var url = 'sample.php';
var params = Form.serialize($('form'));
var ajax = new Ajax.Request(
url,
{
method: 'post',
parameters: params,
onSuccess: function( httpObject ) {
alert(httpObject.responseText);
}
}
);

alert('2');

}

いろいろと検索したのですが、どうもFireFoxのみで起きる現象らしいのですが、対策がわかりません。

なお、execute()自体はIE7でもFireFoxでもよびだされていることは、alert()をはさみ確認しました。
どうもonSuccess()が呼び出されないようです。
※動作させると、「1」は表示されますが、
 「2」は表示されません。

どのような対策が可能か教えてください。

よろしくお願いします。

回答の条件
  • URL必須
  • 1人5回まで
  • 登録:2007/05/23 03:23:20
  • 終了:2007/05/23 09:38:07

ベストアンサー

id:GEN111 No.1

GEN111回答回数472ベストアンサー獲得回数582007/05/23 08:07:14

ポイント50pt

 Windows のローカル環境で試してみましたが、1、2、sample.php の結果が alert されました。

var params = Form.serialize($('form'));

ここは失敗してませんか?

付録 prototype.js:URLパラメータを生成する

id:preshu

ご指摘の通りでした。

どうも私がいくつかのテストをしている中で、

フォームとイベントの指定の修正が誤っていたようです。

ご指摘の内容で気づくことができ助かりました。

ありがとうございました。

2007/05/23 09:32:23

その他の回答(1件)

id:GEN111 No.1

GEN111回答回数472ベストアンサー獲得回数582007/05/23 08:07:14ここでベストアンサー

ポイント50pt

 Windows のローカル環境で試してみましたが、1、2、sample.php の結果が alert されました。

var params = Form.serialize($('form'));

ここは失敗してませんか?

付録 prototype.js:URLパラメータを生成する

id:preshu

ご指摘の通りでした。

どうも私がいくつかのテストをしている中で、

フォームとイベントの指定の修正が誤っていたようです。

ご指摘の内容で気づくことができ助かりました。

ありがとうございました。

2007/05/23 09:32:23
id:Yota No.2

Yota回答回数453ベストアンサー獲得回数282007/05/23 08:49:30

ポイント50pt

普通のHttpRequestでやってみるとか。

function createHttpRequest(){

//Win IE用

if(window.ActiveXObject){

try {

//MSXML2以降用

return new ActiveXObject("Msxml2.XMLHTTP") ;

} catch (e) {

try {

//旧MSXML用

return new ActiveXObject("Microsoft.XMLHTTP") ;

} catch (e2) {

return null

}

}

} else if(window.XMLHttpRequest){

//Win IE以外のXMLHttpRequestオブジェクト実装ブラウザ用

return new XMLHttpRequest() ;

} else {

return null ;

}

}



/******************* ファイルにアクセスし受信内容を確認します ***************************/

//XMLHttpRequestオブジェクト生成

var httpoj = createHttpRequest() ;

//open メソッド 第3引数は非同期ならtrue 同期ならfalse

httpoj.open('GET', 'sample.php', true) ;

//send メソッド

httpoj.send(null) ;

//受信時に起動するイベント

httpoj.onreadystatechange = function() {

//readyState値は4で受信完了

if (httpoj.readyState == 4) { //コールバック

var res = httpoj.responseText ;

alert(res) ;

}

} //イベントおわり


参考

http://allabout.co.jp/internet/javascript/closeup/CU20050515A/in...

id:preshu

ご回答いただいた内容でもOKですね。

私自身のミスは、どうも私がいくつかのテストをしている中で、

フォームとイベントの指定の修正が誤っていたようですが、

複数の手段を平行して検討できるように幅を広げたいと思います。

ご回答ありがとうございました。

2007/05/23 09:36:39

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません