0

好的,所以我试图拥有一个每 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

所以我只想在 pages 变量中加载文本

4

1 回答 1

0

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

  • 此示例使用 jQuery 和 jGFeed。
  • jGFeed 是一个 jQuery 插件,可以用 RSS 提要做任何你想做的事情。
  • 在 HTML 源代码中,您可以获取插件的 URL 以保存它。

观察:

1.您的RSS链接不正常,请检查!(http://directitpros.com/cbm/wp/?feedpages

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

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

2.确保您要在 iframe 中使用的链接能够通过 iframe 浏览:

例子:

如果 URL 无法通过 iframe 浏览,您将在浏览器控制台中收到此消息,并且您的 iframe 将为空:

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

3.如果您发现一个有效的 RSS url 和其中的链接符合上述要求,请使用我制作的这个实时示例进行测试:

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

});

希望这可以帮助。

于 2012-05-21T03:11:15.700 回答