最近我承擔了一項挑戰。我還沒有想出實現這一目標的最佳方法,也許有人有一個想法。如何循環瀏覽頁面?
使用PHP和/或HTML,創建一個頁面,該頁面以給定的時間間隔在任意數量的其他頁面中循環。
例如,我們會加載這個頁面,它會帶我們到谷歌20秒,然後雅虎10秒,然後在180秒等堆棧溢出等等。
最近我承擔了一項挑戰。我還沒有想出實現這一目標的最佳方法,也許有人有一個想法。如何循環瀏覽頁面?
使用PHP和/或HTML,創建一個頁面,該頁面以給定的時間間隔在任意數量的其他頁面中循環。
例如,我們會加載這個頁面,它會帶我們到谷歌20秒,然後雅虎10秒,然後在180秒等堆棧溢出等等。
使用單獨的iframe作爲內容,然後使用Javascript到delay()
一段時間並設置iframe的location
屬性。
當你被帶到另一個站點(例如Google)時,控制權傳遞到該站點,所以爲了讓你的腳本繼續運行,你需要在一個框架中加載新的站點,並保留你的腳本我想可能最容易實現使用Javascript)在另一個框架(這可能是非常小,所以你不能看到它)。
你可以很容易地用JavaScript來做到這一點。這將有助於瞭解部署環境。這是一個亭子什麼的?
對於JavaScript解決方案,提供一個包含JavaScript的頁面,該頁面將彈出一個新的瀏覽器窗口。控制器頁面然後將導致新的瀏覽器窗口在一系列頁面中循環。這是我能想到的最簡單的方法。
編輯:同意Simon的評論。這種解決方案最適合於在沒有任何用戶交互的情況下顯示頁面的信息亭或大型公共顯示環境。
取決於您的具體要求。如果您允許JavaScript並允許框架,那麼您可以在您的頁面上的框架集中粘貼隱藏框架,將其加載到一些JavaScript中。然後這個JavaScript將使用window.location對象和setTimeout函數來控制主框架的內容。
缺點是用戶的地址欄不會使用新的URL進行更新。我不確定這將如何實現。如果你能澄清這些限制,我可以提供更多的幫助。
編輯 - 沙德的建議是一種可能性,但除非用戶觸發該操作,否則瀏覽器可能會阻止彈出窗口。再次,你必須澄清一個彈出是否允許。
創建一個包含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腳本,除非你想編輯重定向....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將在hiddend框架,你會說出你的可見幀「VisibleFrame」。
免責聲明:我只是在註釋窗口寫了這個代碼,並沒有測試它
請求背後的理論基本上是通過網頁儀表盤的各種系統從「信息亭」 PC的循環能力。我監督一個數據中心,我們有幾個監視系統,允許我查看儀表盤的臨時數據,系統運行時間等。 這個想法是加載一個頁面,該頁面可以從儀表板循環到儀表板,每個儀表板剩餘一段時間我在這個板子上1分鐘,在下一個板子上30秒,在下一個2分鐘等等。Javascript是絕對允許的(儘管我沒有什麼經驗)。我選擇的媒體是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
有一大堆的方法可以做到這一點,IV寫了一些腳本和工具從JS到紅寶石的所有內容
最後使用http://dashboardrotator.com要容易得多。它用一個漂亮的簡單GUI來處理瀏覽器重新啓動,內存分配和意外的窗口關閉。
有一個小錯誤 - frames [「displayArea」]。location.href = dashboard.url; 應爲 frames [「displayArea」]。location.href = dashboards.url; – 2008-09-17 17:41:13