分類:[.NET 全般]
2008/01/27(Sun) 01:14:18 編集(投稿者)
前スレがなにやら不評?だったんでとりあえず、資産?として残しておきます。
以下のHTMLを少しずつVB or C# にしていきます。
WebBrowser使わないでフルスクラッチは結構しんどいので途中で挫折する可能性大ですが・・・
とりあえず、第一弾。フォームに貼り付けたWebBrowserに以下のHTMLを貼り付けるだけで
出来てしまう超手抜きRSSリーダー。読み込み先を変更したい場合は、onload の中身のURL
を文字列置換して下さい。
デザインは、色々お好みで調整して下さい。
というか、前スレの方は、流れる文字列よりも、Windows Form で作る場合、
タイトルバー消したり、ドラッグ・ドロップ可能にしたり、移動するのに
グリップバーを付けたり、とか細かい部分の作りこみは出来ていたのでしょう
かね? さておき・・・
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<TITLE>RssReaderDemo</TITLE>
<script type="text/javascript">
function AjaxRssReader(url) {
var req = new ActiveXObject("MSXML2.XMLHTTP");
req.onreadystatechange = function() {
};
req.open("GET", url, true);
req.send( null );
var xml = req.responseXML.getElementsByTagName("item");
if (typeof xml != "undefined") {
var stack = [];
for (var i=0;i < xml.length;i++) {
var item = xml[i];
var titleNode = item.getElementsByTagName("title");
var linkNode = item.getElementsByTagName("link");
if (titleNode && linkNode) {
var title = titleNode[0].firstChild.nodeValue;
var link = linkNode[0].firstChild.nodeValue;
stack.push( { "title":title, "link":link } );
}
}
return stack;
}
return null;
}
var rssNodes = null;
window.onload = function() {
rssNodes = AjaxRssReader("http://jsajax.com/RssFeed.aspx?categoryid=28");
}
function rssGetNext() {
if (rssNodes != null) {
var item = rssNodes.pop();
if (item) {
var a = document.createElement("a");
a.href = item.link;
a.title = item.link;
a.target = "_blank";
a.innerHTML = item.title;
var mq = event.srcElement;
mq.firstChild.replaceNode(a);
mq.start();
}
}
}
</script>
</HEAD>
<BODY>
<div style="width:400px;height:32px;background-color:pink;">
<marquee id="mq" loop="1" onmouseover="this.stop()" onmouseout="this.start()"
onfinish="rssGetNext()" scrollDelay="65" scrollAmount="2"><span></span></marquee>
</div>
</BODY>
</HTML>
次回はもうちっとVB/C# の部分を多くして・・・
というか、マーキーで十分でしょう。
# 訂正:前スレだとリンクマウスオーバーで停止するんでしたね・・・
# マウスイベント追加しました。