این کد چه مشکلی داره؟

parisaa

Member
گفتند که با این کد میشه آخرین مطالب سایتها را از طریق rss در سایتمون نشون داد
کجا باید آدرس rss را وارد کنم؟


کد:
<script language="JavaScript">
var arrFTitle = new Array(), arrFLink = new Array();

function loadFranchising(url, handler) {

if (document.implementation && document.implementation.createDocument) {

var xmldoc = document.implementation.createDocument("", "", null);
xmldoc.onload = function( ) { handler(xmldoc); }
xmldoc.load(url);

}
else if (window.ActiveXObject) {

var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
xmldoc.onreadystatechange = function( ) {
if (xmldoc.readyState == 4) handler(xmldoc);
}
xmldoc.load(url);
}
}

function formatRSS(xmldoc) {

var items = xmldoc.getElementsByTagName("item");

for(var i = 0; i < items.length; i++) {

var e = items[i];
arrFTitle[i] = e.getElementsByTagName("title")[0].firstChild.data;
arrFLink[i] = e.getElementsByTagName("link")[0].firstChild.data;

}

showNewsReel();

}

function showNewsReel(){
var strNewsReel = "" ;

for(var idx = 0; idx < arrFTitle.length; idx++ ) {

strNewsReel = strNewsReel + '<b>»</b>&nbsp;<a href="' + arrFLink[idx] + '" class="feature">' + arrFTitle[idx] + '</a><br>';
}
franchising.innerHTML = strNewsReel;

}

</script>
 

parisaa

Member
آدرس آر اس اس را کجا باید وارد کنم؟
ممکنه یکی این کد را امتحان کنه ببینه کار می کنه یا نه؟
 

parisaa

Member
لطفا راهنمایی کنی

آدرس آر اس اس را کجا باید وارد کنم؟
ممکنه یکی این کد را امتحان کنه ببینه کار می کنه یا نه؟
 

bahy_my

Active Member
والا من زیاد سرم نمیشه.
اما اگهخ اونجوری که مازلوق جان (ببخشید من اسمتون نمی دونم) گفت باید اینجوری باشه :
loadFranchising("RSS_URL",handler);
که من نمی دونم این handlre چیه :دی
باید صبر کنی ببینی کسی هست بتونه کمک کنه یا نه
 
من نمی تونم اینو امتحان کنم ولی یه تغییراتی توش دادم احتمالا بشه

کد:
<script language="JavaScript">
var arrFTitle = new Array(), arrFLink = new Array();

function loadFranchising(url) {

if (document.implementation && document.implementation.createDocument) {

var xmldoc = document.implementation.createDocument("", "", null);
xmldoc.onload = function( ) { formatRSS(xmldoc); }
xmldoc.load(url);

}
else if (window.ActiveXObject) {

var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
xmldoc.onreadystatechange = function( ) {
if (xmldoc.readyState == 4) {formatRSS(xmldoc);}
}
xmldoc.load(url);
}
}

function formatRSS(xmldoc) {

var items = xmldoc.getElementsByTagName("item");

for(var i = 0; i < items.length; i++) {

var e = items[i];
arrFTitle[i] = e.getElementsByTagName("title")[0].firstChild.data;
arrFLink[i] = e.getElementsByTagName("link")[0].firstChild.data;

}

showNewsReel();

}

function showNewsReel(){
var strNewsReel = "" ;

for(var idx = 0; idx < arrFTitle.length; idx++ ) {

strNewsReel = strNewsReel + '<b>»</b>&nbsp;<a href="' + arrFLink[idx] + '" class="feature">' + arrFTitle[idx] + '</a><br>';
}
document.write = strNewsReel;

}

</script>

هرجا خاستید اخرین مطالب نمایش داده بشه باید از این دستورر استفاده کنی:
کد:
<script language="JavaScript">
loadFranchising(url);
</script>
ادرس ار اس اس رو هم باید به جای url بنویسی
مثلا
کد:
<script language="JavaScript">
loadFranchising('adress.rss');
</script>
اگه کار نداد بگید تا دوباه چک کنم
 
آخرین ویرایش:
اول بايد ببينيد که ميخوايد کجا و به چه شکلي ازش استفاده کنيد.
پيشنهاد ميکنم از JavaScript براي بارگذاري صفحات XML استفاده نکنيد.
اما براي امتحان يکسري تغييرات توش دادم و درست کار ميکنه،

کد:
<html><head>
<style type="text/css">
<!--
div#rss_feed { font-size: 11px; font-family: tahoma; color: #222; line-height: 150%;}
div#rss_feed a { text-decoration: none; color: #336699; }
div#rss_feed a:hover { color: brown; }
-->
</style>
<script type="text/javascript" language="JavaScript">
// <![CDATA[
var arrFTitle = new Array(), arrFLink = new Array(), arrFDate = new Array(), xmldoc;

function Rss_Load(url)
{
	if (document.implementation && document.implementation.createDocument)
	{
		xmldoc = document.implementation.createDocument("", "", null);
		xmldoc.load(url);
		xmldoc.onload = Rss_Format;
	}
	else if (window.ActiveXObject)
	{
		xmldoc = new ActiveXObject("Microsoft.XMLDOM");
		xmldoc.onreadystatechange = function()
		{
			if (xmldoc.readyState == 4)
			{
				Rss_Format();
			}
		}
		
		xmldoc.load(url);
	}
}

function Rss_Format()
{
	var i, items = xmldoc.getElementsByTagName("item");
	
	for (i = 0; i < items.length; i++)
	{
		var e = items[i];
		
		arrFTitle[i] = e.getElementsByTagName("title")[0].firstChild.data;
		arrFLink[i] = e.getElementsByTagName("link")[0].firstChild.data;
		arrFDate[i] = e.getElementsByTagName("pubDate")[0].firstChild.data;
	}
	
	Rss_Show();
}

function Rss_Show()
{
	var i, strNewsReel = "" ;
	
	for(i = 0; i < arrFTitle.length; i++ )
	{
		strNewsReel += '<strong title="' + arrFDate[i] + '">» <a href="' + arrFLink[i]
					+ '" target="_blank">' + arrFTitle[i] + '</a></strong><br />';
	}
	
	document.getElementById('rss_feed').innerHTML = strNewsReel;
}
// ]]>
</script>
</head>
<body onload="Rss_Load('./topstories.xml');">
<div id="rss_feed"></div>
</body></html>

در تگ body و در خاصيت onload اين تابع فراخواني شده، شما ميتونيد آرگومانش رو به هر آدرسي که داريد تغيير بديد تا اون صفحه بارگذاري بشه.
 

parisaa

Member
کدهایی که گذاشتید ،هیچ کدوم کار نمی کنند

عین همین کدها را استفاده کردم ولی صفحه خالی نشون می ده

لطفا اگه ممکنه تست کنید
 
اون فایل feedی که به تابع تعریف میکنید در کجا هستش ؟
توجه داشته باشید که فایل باید در سرور اصلی (یا کنار فایل HTML) باشه, چون در غیر اینصورت شما اجازه دسترسی به سرور دیگران رو ندارید.
مثلاً نمیتونین این آدرس رو بدین :
کد:
http://www.test.com/rss.xml

مددیس.
 

جدیدترین ارسال ها

بالا