3

私はhtmlを持っています

index.html:

<html>

<head>
    <title>Facebook</title>

    <script type="text/javascript" src="../xdata/js/jquery.js"></script>
</head>

<body>
    Tasks (<span id="tasks">0</span>)
    Messages (<span id="messages">0</span>)
    Notifications (<span id="notifications">0</span>)


    <script type="text/javascript">
    $(document).ready(function() {
    var pagetitle = document.title;
    document.title = pagetitle+' NEW NOTIFICATON';
    });
    </script>
</body>

</html>

およびxmlファイル

page.xml:

<?xml version="1.0" ?>
<page tasks="1" messages="3" notifications="3"/>

5秒ごとにfaceboook( "(1)Facebook")のようにタイトルindex.htmlを読んpage.xmlで変更し、タスク、メッセージ、通知を変更するにはどうすればよいですか...

xmlの読み取りに問題があります。誰かが私を助けることができますか?

PS-私はjQueryが好きです...しかしJavaScriptも同様に機能します

4

4 に答える 4

2

以下はjqueryで実行されましたが、xmlファイルにわずかなエラーがあり、解析の問題が発生します。

xmlファイルが次のようになっていると仮定します。

<?xml version="1.0"?>
<data>
    <page tasks="1" messages="3" notifications="3"/>
</data>

次のコードは、もちろんjqueryを使用して、それに応じてページを変更します。

$(document).ready(function() {
    function get_info() {
        $.ajax({
            type: "GET",
            url: "page.xml",
            dataType: "xml",
            cache: false,
            complete: function(doc) {
                var tasks = $(doc.responseText).find("page").attr("tasks");
                var msgs = $(doc.responseText).find("page").attr("messages");
                var notes = $(doc.responseText).find("page").attr("notifications");
                if (tasks != $('#tasks').text() ||
                    msgs != $('#messages').text() ||
                    notes != $('#notifications').text()) {
                    document.title = "Facebook" + ' NEW NOTIFICATON';
                }
                $('#tasks').text(tasks);
                $('#messages').text(msgs);
                $('#notifications').text(notes);
            }
        });

    }
    setInterval(function() {
        get_info();
    }, 5000);
});

私はこれを開発するのにしばらく時間を費やしました、そして私はそれがうまくいくという事実を知っています。

于 2012-07-10T21:55:51.370 に答える
0

ロジックをsetTimeoutメソッド呼び出しの中に入れます。

setTimeout(function(){
    alert('I am displayed after 3 seconds!');
}, 3000);
于 2012-07-10T20:28:11.257 に答える
0
    var tid = setTimeout(function_name, 5000);

function function_name() {
  // do some stuff...
  tid = setTimeout(function_name, 5000); // repeat
}
function abortTimer() { // to stop the timer
  clearTimeout(tid);
}
于 2012-07-10T20:28:32.223 に答える
0
    Try this:
    (document).ready(function() {
        function getPage() {
           var page= $.ajax({
                type: "GET",
                url: "page.xml",
                dataType: "xml",
                async : false,
            }).responseXML;
       $(page).find('page').each(function(){
         var tasks = $(this).attr("tasks");
         var msgs = $(this).attr("messages");
         var notes = $(this).attr("notifications");
         $('#tasks').html(tasks);
         $('#messages').html(msgs);
         $('#notifications').html(notes);
      });
   }
});
    setInterval(getPage,5000);
于 2012-07-11T13:14:58.217 に答える