解析RSS <link />以用作源

时间:2012-05-21 00:45:07

标签: php javascript jquery html

好的,所以我试着拥有一个每30秒旋转一次的网页,现在我拥有了我需要的东西,而不是使用像我现在看到的代码一样的数组

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Rotating Page</title>
<style type="text/css">
* {
    margin:0;
    padding:0;
    border:0;
}
html, body, iframe {
    height:100%;
    width:100%;
    overflow:hidden;
}    
</style>
<script type="text/javascript">
var pages = new Array(); // this will hold your pages
pages[0] = 'MY-LINK-HERE';
pages[1] = 'MY-LINK-HERE';
pages[2] = 'MY-LINK-HERE';
pages[3] = 'MY-LINK-HERE';
pages[4] = 'MY-LINK-HERE';
pages[5] = 'MY-LINK-HERE';

var time = 30; // set this to the time you want it to rotate in seconds

// do not edit
var i = 1;
function setPage()
{
    if(i == pages.length)
    {
        i = 0;  
    }
    document.getElementById('holder').setAttribute('src',pages[i]);
    i++;
}    
setInterval("setPage()",time * 1000);
// do not edit
</script>
</head>

<body>
<iframe id="holder" src="MY-SPLASH-PAGE-HERE" frameborder="0" scrolling="no"></iframe>
</body>
</html>

在MY-LINK-HERE中对于pages数组,我想使用我的rss链接并获取链接列表并将它们添加到pages数组或类似的东西

我的RSS链接是http://directitpros.com/cbm/wp/?feedpages

所以我只想加载页面变量

中的文本

1 个答案:

答案 0 :(得分:0)

花了我一些时间,但我得到了它(测试和工作)

  • 此示例使用jQuery和jGFeed。
  • jGFeed是jQuery的插件,可以使用RSS feed执行任何操作。
  • 在HTML源代码中,您可以获取要保存的插件的网址。

<强>观察:

1。您的RSS链接无法正常运行,请检查一下! (http://directitpros.com/cbm/wp/?feedpages

使用链接时,我在浏览器控制台中使用的插件中收到此错误:

"Uncaught TypeError: Cannot read property 'feed' of null"

2。确保您要在iframe中使用的链接能够按iframe浏览:

示例:

如果网址无法按iframe浏览,您将在浏览器控制台中收到此消息,而您的iframe将为空:

"Refused to display document because display forbidden by X-Frame-Options."

3. 如果您发现有效的RSS网址及其中的链接符合上述要求,请使用我为测试所做的实例:

http://jsfiddle.net/oscarj24/qWdqc/

(检查浏览器控制台并检查将出现的消息)


我们来看看代码: - )

<强> HTML:

<script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script> 
<script src="http://dl.dropbox.com/u/15208254/stackoverflow/jquery.jgfeed.js" type="text/javascript"></script>
<iframe id="holder" src="" frameborder="0" scrolling="no"></iframe>​

<强> CSS:

html, body, iframe {
    height:100%;
    width:100%;
    overflow:hidden;
}​

<强> JS:

// Array containing pages
var pages = new Array();

// Time in seconds to rotate pages
var time = 30;

// Variable for loop purpose
var i = 1;

$(function(){

    $.jGFeed('http://working-rss-url',
      function(feeds){

        // Check for feeds
        if(!feeds){
          // There was an error, remote url not ok or no feeds
          return false;
        }

        // Do whatever you want with feeds here
        for(var i=0; i<feeds.entries.length; i++){
          var entry = feeds.entries[i];
          // Fill array with RSS entries
          pages.push(entry);
        }

        // If array contains urls
        if(pages.length != 0){
            // Rotate pages every 'x' seconds
            setInterval(function() {
                if(i == pages.length){
                   i = 0;  
                }
                // Replace iframe scr with RSS entry link every 'x' seconds
                $('#holder').attr('src', pages[i].link);
                i++;
            }, time * 1000);
        }

    }, 5); // Number of feeds you want to recover

});

希望这有帮助。