別ドメイン(jugemブログ)のRSSをjQueryにて取得&表示させるということを試みております。
RSSの取得表示のコードは下記の通りです。
javascript
1 $(function(){ 2 $.ajax({ 3 url: 'rss.php', 4 xmlType: 'xml', 5 cache: false, 6 success: function(xml) { 7 8 var row = 0; 9 var data = []; 10 var nodeName; 11 12 $(xml).find('item').each(function() { 13 data[row] = {}; 14 $(this).children().each(function() { 15 16 nodeName = $(this)[0].nodeName; 17 data[row][nodeName] = {}; 18 attributes = $(this)[0].attributes; 19 for (var i in attributes) { 20 data[row][nodeName][attributes[i].name] = attributes[i].value; 21 } 22 data[row][nodeName]['text'] = $(this).text(); 23 24 $(this).find('date,dc\\:date').each(function() { 25 26 var pubtime = $(this).text(); 27 pubtime = new Date(pubtime); 28 data[row].pubDate = pubtime.replace(/(\d+-\d+-\d+)T(\d+:\d+).+/,function(a,b,c) { 29 return b.replace(/-/g, '/') + ' ' + c; 30 }); 31 }); 32 33 }); 34 row++; 35 }); 36 for (i in data) { 37 38 console.log (data[i]); 39 $('#feed').append('<p>'+ data[i].pubDate +'</p><h3><a href="' + data[i].link.text + '" target="_blank">'+ data[i].title.text +'</a></h3>'); 40 } 41 } 42 }); 43 }); 44</script>
タイトルは取得に成功しているのですが、日付はdc:dateという要素に入っているためか、
日付の出力で「undefined」と出てしまいます。 これは調べてみると”未定義”ということらしいのですが、なぜ未定義なのかがわかりません。。
そしてWebデベロッパーツールのコンソールを開くと一点エラーが出ていました。それが下記のようなものです。「sun_raft is not defined」というのは見たことも聞いたこともなく、情報を調べても全くヒットせず、、どうか皆様の力をお借りしたいと思った次第です。
【エラー内容】
VM13268:1 Uncaught ReferenceError: sun_raft is not defined at <anonymous>:1:1 (anonymous) @ VM13268:1 setTimeout (async) cloud @ all.js:78 animation @ all.js:53 (anonymous) @ VM13267:1 setTimeout (async) (anonymous) @ all.js:49 i @ jquery.min.js:2 fireWith @ jquery.min.js:2 ready @ jquery.min.js:2 K @ jquery.min.js:2
主に参考にしたブログはこちらです。
http://blog.embellir-design.com/article/JQuery_RSS.html?seesaa_related=category
何卒宜しくお願い致しますm(__)m
【追記①】
ご質問頂きました件です。
success: function(xml) {
の直後で
console.log (xml);
として確認いたしました。
確かにタイトルやリンク、日付など、必要なRSSフィード情報が全て入っておりました。
またPHPの動作環境は整っております。
ちなみにPHPファイル(rss.php)の中身は下記のようになっております。
php
1<?php 2$url = "URLが入っています"; 3$xml = file_get_contents($url); 4header("Content-type: application/xml; charset=UTF-8"); 5print $xml; 6?>
【追記②】
$(this).find('date,dc\:date').each(function() {
の後でconsole.log($(this)); をしても何も返ってきていないようでした。
もしかして、ヒットすらしていないということでしょか?
回答1件
あなたの回答
tips
プレビュー