• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ブログのRSSをウェブサイトで表示させたい)

ウェブサイトでブログのRSSを表示させる方法

このQ&Aのポイント
  • spryを使ってブログのRSSをウェブサイトで表示させる方法を解説します。
  • 現在は<title>や<description>を表示しているが、画像やリンクも表示させるために<content:encoded>を利用する考え。
  • ただ、<content:encoded>を表示させるとHTMLがそのまま表示されてしまうため、HTMLとして表示する方法について教えてほしい。

質問者が選んだベストアンサー

  • ベストアンサー
  • nine999
  • ベストアンサー率44% (512/1140)
回答No.1

提示の部分ではスクリプトの状況が判りませんが <div>に対し、テキストを出力する際に document.getElementById().innerText を使うとそのままテキストが表示されます。 document.getElementById().innerHTML にするとHTMLのソースとして扱われるので、タグを識別して表示されるようになります。

kerokerori
質問者

お礼

ありがとうございます。 spryのデータが何千行もあり、そのまま使っているため どこが該当するスクリプトのかよくわかりません。 SpryData.jsをカスタマイズするのはハードルが高いように思うので このデータだけ変更できたらいいなと思っていたのですが、難しいでしょうか。

kerokerori
質問者

補足

何度もすみません。 ここかな、と思うソースを見つけました。 ------------------------------------------------------------ Spry.$ = function(element) { if (arguments.length > 1) { for (var i = 0, elements = [], length = arguments.length; i < length; i++) elements.push(Spry.$(arguments[i])); return elements; } if (typeof element == 'string') element = document.getElementById(element); return element; }; } // if (!Spry.$$) ------------------------------------------------------------ 試しに element = document.getElementById(element); を element = document.getElementById(element).innerHTML; としましたが、特に変化はありませんでした。 HTML側はこのように記述しています。 ------------------------------------------------------------ <head> <script type="text/javascript"> <!-- var updata = new Spry.Data.XMLDataSet("RSSのアドレス", "rdf:RDF/item"); //--> </script> </head> <body> <div spry:region="updata" id="updata"> <div spry:repeat ="updata"> <p>{updata::title}</p> <div>{updata::content:encoded}</div> </div> </div> </div> ------------------------------------------------------------