人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

JavaScript (Ajax)

リンクをクリックすると指定したURLにアクセスし(ブラウザの表示はそのままで、ただアクセスするだけです)、そのリンクが消える といった機能を実装するためのJavascriptのソースをお願いします。

●質問者: esecua
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:Ajax JavaScript URL アクセス クリック
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● llusall
●30ポイント

こちらでいかがでしょうか?


<a href="JavaScript:shori()" id="idLnk">なにかのリンク</a>



<SCRIPT LANGUAGE=JavaScript>

<!--

function shori(){

    //Ajax

    var url = "./hoge.php"; //指定したURLにアクセス

    var xmlHttp;

    try {

        xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");

    } catch(e) {

        xmlHttp=new XMLHttpRequest();

    }

    xmlHttp.open("GET",url,true); // アクセスするだけなので非同期実行(同期実行の場合はfalse)

    xmlHttp.send(null);

    //レスポンスを取得

//  var res  = xmlHttp.responseText;

//  ※アクセスするだけなので不要

    //リンクを非表示

    document.all.idLnk.style.visibility = "hidden"; 

}

◎質問者からの返答

すいません、これではFireFoxのブラウザでは動いてくれません。


2 ● kazu1107
●8ポイント

様々なブラウザに簡単に対応させようと思うなら既存のAjaxライブラリを使うのはどうでしょうか?

http://jsgt.org/mt/archives/01/000409.html

◎質問者からの返答

このライブラリを使ってどうやって実装するんですか!?


3 ● kazu1107
●6ポイント

<script src = "./jslb_ajax.js" charset= "utf-8"></script>

<SCRIPT LANGUAGE=JavaScript>

<!--

function shori(){

//Ajax

var url = "./hoge.txt"; //指定したURLにアクセス

// 送信

sendRequest(onloaded,'','GET',url);

}


//受信時に動作するコールバック関数

function onloaded(oj){

// oj.responseTextを参照すればデータを受け取れます。

document.all.idLnk.style.visibility = "hidden";

}

//-->

</script>

◎質問者からの返答

ん?できない....


4 ● まきのっぴ
●54ポイント ベストアンサー

prototype.js を使った例を出すと、こんな感じではないでしょうか。

IE でも Firefox でも Opera でも OK です。

<html>

<head>

<script src="http://prototype.conio.net/dist/prototype-1.4.0.js"></script>

<script>

function hoge()

{

new Ajax.Request('http://www.example.com/hoge', { method: 'get' });

Element.remove('hoge');

}

</script>

</head>

<body>

<a href="javascript:hoge()" id="hoge">click</a>

</body>

</html>

詳しくは prototype.js の開発者向けメモ - Ajax.Request クラスを使う あたりを参照ください。

なお、Ajax(XMLHttpRequest) の仕様として、読み込み元の HTML と異なるサーバへのアクセスはできませんのでご注意ください。

もし異なるサーバへアクセスさせたかったら同一サーバにそれを実現するための中継 CGI 等を用意する必要があります。

◎質問者からの返答

ありがとうございます。これでOKです。


5 ● zaxx
●2ポイント

<html><body>

んじゃ勝手に修正

なにかのリンク


<SCRIPT LANGUAGE=JavaScript></p> <p><!--</p> <p>function shori(){</p> <p> //Ajax</p> <p> var url = "./a.html"; //指定したURLにアクセス</p> <p> var xmlHttp;</p> <p> try {</p> <p> xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");</p> <p> } catch(e) {</p> <p> xmlHttp=new XMLHttpRequest();</p> <p> }</p> <p> xmlHttp.open("GET",url,true); // アクセスするだけなので非同期実行(同期実行の場合はfalse)</p> <p> xmlHttp.send(null);</p> <p> //レスポンスを取得</p> <p>// var res = xmlHttp.responseText;</p> <p>// ※アクセスするだけなので不要</p> <p> //リンクを非表示</p> <p>// document.all.idLnk.style.visibility = "hidden"; </p> <p> var elem = document.getElementById("idLink");</p> <p> elem.style.visibility ="hidden";</p> <p> elem.style.display="none";</p> <p>}</p> <p></script>

</body></html>

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ