過去ログ表示


過去ログ 259 を表示

トピック内全 5 記事中の 1 〜 5 番目を表示
[ 最新記事及び返信フォームをトピックトップへ ]
このトピックの全ページ / [0]

非同期通信
(#40727) このトピック中1番目の投稿
(環境: WinXP SP2/Firefox2.0)

javascriptでwebサーバーのxmlを取得しhtml内に表示したいのですがFirefox2.0.0.11を使用していますがうまくいきません。

IE6.0では作動しています。

webでの検索ではどれも同じような方法が掲載されておりうまく行っているようです。
個人的な推測ではFirefox2以前ではうまく行っていたのかなと思っております。

javascriptとそれに付帯するもの(activexなど)のみで実現したいです。

環境はwindowsXPpro2.0とwindows server2003を想定しています。実験環境はxpです。

まったく同じではありませんがwebでサンプルとして掲示してあったものです。
これと同じようなスクリプトです。

function createXMLHttpRequest(cbFunc)
{
var XMLhttpObject = null;
try{
XMLhttpObject = new XMLHttpRequest();
}catch(e){
try{
XMLhttpObject = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
XMLhttpObject = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
return null;
}
}
}
if (XMLhttpObject) XMLhttpObject.onreadystatechange = cbFunc;
return XMLhttpObject;
}

実際うまく作動していないので問題があるとは思います。activexじたいがFirefox2以降使えないためでしょうか。

activexが使えない場合ほかの手段がありますでしょうか?

phpやperlなどは環境的に制限があり使用できません。

あくまでjavascriptです。

大変困っております。ご指南ください。

Re[1]: 非同期通信
(#40728) このトピック中2番目の投稿
(環境: Mac/Firefox2.0)

Firefox では ActiveX は使えません。
しかし XMLHttpRequest は ActiveX と無関係なので
IE 以外のほとんどのブラウザで使用可能です。
上のコードは IE 以外では XMLHttpRequest を、
IE では ActiveX のオブジェクトを作るというコードです

上のコードの範囲では間違いは無いので、他の部分に問題があると思われます。
うまく動作しないとはどのように動作しないのでしょうか?
[ツール]-[エラーコンソール] に何か表示されますか?

Re[2]: 非同期通信
(#40736) このトピック中3番目の投稿
(環境: WinXP SP2/Firefox2.0)

ありがとうございます。

エラーコンソールはホームに設定してあるyahoo.co.jpに対するエラーが表示されたままです。

実際のスクリプトを載せますのでご指摘ください。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html LANG="ja-JP">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<META http-equiv="Content-Script-Type" content="text/javascript">

<title>テストページ</title>

<script type="text/javascript"><!--

function myCheck() {

var r = null;


if (typeof window.XMLHttpRequest == "undefined") {
if (typeof window.ActiveXObject == "function") {
try {
r = new ActiveXObject("Msxml2.XMLHTTP");
r = window.XMLHttpRequest = myXMLrequest()
{
r = new ActiveXObject("Msxml2.XMLHTTP");
}
}
catch (e) {
try {
r = new ActiveXObject("Microsoft.XMLHTTP");
r = window.XMLHttpRequest = myXMLrequest()
{
r = new ActiveXObject("Microsoft.XMLHTTP");
}
}
catch (e) {
}
}
}
// else if () { }
}
// else { }
r.onreadystatechange = function() {

if ( ( r.readyState == 4 ) && ( r.status == 200 ) ) {

var items = r.responseXML.getElementsByTagName("item");
var titles = r.responseXML.getElementsByTagName("title");
var resText = r.responseXML.getElementsByTagName("content:encoded")[0].firstChild.nodeValue

以下続くです。

よろしくお願いします。

Re[3]: 非同期通信
(#40741) このトピック中4番目の投稿
(環境: Mac/Firefox2.0)

このコードはそもそも
>if (typeof window.XMLHttpRequest == "undefined") {
> if (typeof window.ActiveXObject == "function") {
の条件を IE しか満たさないので他のブラウザでは動作しません。(r が null のままです)
最初に書かれたコードと同じように書き直す事をお勧めします。

Re[4]: 非同期通信
(#40760) このトピック中5番目の投稿
(環境: WinXP SP2/Firefox2.0)

何度もありがとうございます。

当初の目的は達成できませんでしたがおかげ様で解決しました。

きちんと通信できています。ありがとうございます。

別のところにもミスがありすっかり取り乱していたようです。

解決しました。


このトピックの全ページ / [0]

返信不可


- Child Tree -