如何浏览页面?

时间:2020-03-05 18:59:05  来源:igfitidea点击:

这是我最近面临的一项挑战。我仍然没有找到最好的方法,也许其他人有一个主意。

使用PHP和/或者HTML,创建一个页面,该页面以给定的间隔在任意数量的其他页面之间循环。

例如,我们将加载此页面,它将花费我们20秒钟到google,然后10秒钟到yahoo,然后180秒钟到stackoverflow,依此类推。

解决方案

回答

为内容使用单独的iframe,然后使用Javascript一段时间" delay()"并设置iframe的" location"属性。

回答

当我们被带到另一个站点(例如Google)时,控件将传递到该站点,因此,为了使脚本继续运行,我们需要将新站点加载到一个框架中,并保留脚本(这是我想象的)可以在另一个框架中使用Javascript轻松实现(可以将其做得很小,以至于看不到它)。

回答

我们可以使用JavaScript轻松完成此操作。了解部署环境将有所帮助。是服务亭还是什么?

对于JavaScript解决方案,提供一个包含JavaScript的页面,该页面将弹出以打开一个新的浏览器窗口。然后,控制器页面将使新的浏览器窗口在一系列页面之间循环。这是我能想到的最简单的方法。

编辑:同意西蒙的评论。此解决方案将在仅显示页面而无需任何用户交互的自助服务终端或者大型公共显示环境中最有效。

回答

取决于确切要求。如果我们允许JavaScript并允许框架,则可以将隐藏的框架粘贴到页面上的框架集中,以向其中加载一些JavaScript。然后,此JavaScript将使用window.location对象和setTimeout函数控制主框架的内容。

不利之处在于用户的地址栏不会使用新的URL更新。我不确定否则如何实现。如果我们可以阐明限制条件,我可以提供更多帮助。

尽管除非用户触发操作,否则浏览器可能会阻止弹出窗口,但Edit Shad的建议是可能的。同样,我们必须澄清是否允许弹出窗口。

回答

创建一个包含IFrame的包装HTML页面,尺寸为" 100%x 100%"。然后添加一些JavaScript,以在设置的时间间隔之间更改IFrame的" src"。

回答

我认为它必须像gabbly.com一样工作,它吸收其他网站并在其上显示其自己的内容。

一旦我们阅读了另一个站点并准备​​好显示它,就不能真正使用" PHP"来完成它。我们将必须发送HTML重定向元标记:

<meta HTTP-EQUIV="REFRESH" content="15; url=http://www.thepagecycler.com/nextpage.html">

或者,我们可以使用Javascript代替元标记。

回答

除非我们要编辑重定向,否则这在PHP脚本中是不可行的。我们将需要使用Javascript之类的工具执行此操作。

据我所知,我们要做的最好的事情是在Web服务器上创建一个文本文件,并根据该文本文件中的时间加载不同的HTTP地址,然后将浏览器重定向到该站点中找到的站点。文本文件。

回答

想到的第一个解决方案是在框架集中执行此操作。隐藏其中一个框架,另一个隐藏框架。从隐藏的框架中使用Javascript驱动页面转换。

function RefreshFrame()
{
    parent.VisibleFrame.location.href = urlArray[i];
    i++;

    if(i < urlArray.length) SetTimeout("RefreshFrame()", 20000);
}

var i = 0;
var urlArray = ['http://google.com','http://yahoo.com', 'http://www.search.com'];
RefreshFrame();

在此示例中,JavaScript将位于隐藏的框架中,并且我们将可见框架命名为" VisibleFrame"。

免责声明:我只是在注释窗口中编写了此代码,但尚未对其进行测试

回答

要求背后的理论基本上是从"信息亭" PC遍历各种系统的网页仪表板的能力。我监督着一个数据中心,我们有几个监视系统,可让我查看仪表板的温度,系统正常运行时间等。
这个想法是加载一个页面,该页面在我指定的时间范围内从一个仪表板循环到另一个仪表板,在我指定的时间内,该板上的1分钟,下一个板上的30秒,下一个板上的2分钟,等等。绝对允许(尽管我对此经验很少)。我选择的媒介是PHP / HTML,我没有看到一种使它们完全干净地实现这一目标的方法。

回答

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<title>Dashboard Example</title>
<style type="text/css">
body, html { margin: 0; padding: 0; width: 100%; height: 100%; overflow: hidden; }
iframe { border: none; }
</style>
<script type="text/javascript">
var Dash = {
    nextIndex: 0,

    dashboards: [
        {url: "http://www.google.com", time: 5},
        {url: "http://www.yahoo.com", time: 10},
        {url: "http://www.stackoverflow.com", time: 15}
    ],

    display: function()
    {
        var dashboard = Dash.dashboards[Dash.nextIndex];
        frames["displayArea"].location.href = dashboard.url;
        Dash.nextIndex = (Dash.nextIndex + 1) % Dash.dashboards.length;
        setTimeout(Dash.display, dashboard.time * 1000);
    }
};

window.onload = Dash.display;
</script>
</head>
<body>
<iframe name="displayArea" width="100%" height="100%"></iframe>
</body>
</html>

回答

我设法创造了这个东西。它虽然不漂亮,但确实可以工作。

<?php
# Path the config file, full or relative.
$configfile="config.conf"; 
$tempfile="tmp.html";
# Read the file into an array
$farray=file($configfile);  
# Count array elements
$count=count($farray);  
if(!isset($_GET['s'])){
    $s=0;
}else{  
    $s=$_GET['s'];
if($s==($count-1)){ # -1 because of the offset in starting our loop at 0 instead of 1
    $s=0;
}else{
    $s=$_GET['s']+1; # Increment the counter
}
}
# Get the line from the array
$entry=$farray[$s];
# Break the line on the comma into 2 entries
$arr=explode(",",$entry);       
# Now each line is in 2 pieces - URL and TimeDelay
$url=strtolower($arr[0]);
# Check our url to see if it has an HTTP prepended, if it doesn't, give it one.
$check=strstr($url,"http://"); 
if($check==FALSE){
    $url="http://".$url;
    }           
# Trim unwanted crap from the time
$time=rtrim($arr[1]);               
# Get a handle to the temp file
$tmphandle=fopen($tempfile,"w");
# What does our meta refresh look like?
$meta="<meta http-equiv=\"refresh\" content=\"".$time.";url=index.php?s=".$s."\">\n";
# The iframe to display
$content="<iframe src =\"".$url."\" height=\"100%\" width=\"100%\"></iframe>";
# roll up the meta and content to be written
$str=$meta.$content;
# Write it
fwrite($tmphandle,$str);
# Close the handle
fclose($tmphandle);
# Load the page
die(header("Location:tmp.html"));            
?>

配置文件如下所示(URL,停留在该页面上的时间):
google.com,5
http://yahoo.com,10