2009-10-14 27 views
0

首先讓我承認,我在我的頭上。我們的教堂網站被放在了我的身上,我正在盡最大努力在大約10年的間隔後加快速度。目前經歷了非常嚴重的化療,所以至少我有很多時間。幫助js文件存在查詢

我想找出一種方法腳本的HTML網頁來檢查另一個網頁的存在,然後顯示該其他頁面,如果它被發現。我發現什麼看起來是一個可能的解決方案here,但我似乎無法弄清楚它的工作原理。

我們有一個青少年籃球網頁,在加載時應檢查是否存在「取消比賽」頁面,如果有,顯示該頁面。我準備了一些命令行腳本,可以讓教練根據天氣,通過FTP上傳/刪除「取消」頁面。

我知道我可能在這裏請求太多的幫助,但請知道它將不勝感激。

非常感謝

NeedyOldNoob

回答

2

PHP是一個更容易做這樣的事情,它的速度也快很多,並且還可以與沒有啓用Javascript的用戶一起使用。另外,如果您在自己的域名外尋找頁面,由於同源策略,Javascript不會允許。

在最簡單的形式,你可以做這樣的事情:

<?php 
$page = file_get_contents("http://example.com/page_you_need.html"); 
if ($page) { 
    echo $page; 
} else { 
    echo "Page does not exist!"; 
} 
?> 

注意,您可以輕鬆地將使用這樣的腳本的惡意代碼,所以一定要信任你想閱讀的頁面和請勿在file_get_contents中允許任何用戶輸入。

+0

這看起來很有吸引力。如果我的理解正確,我可以加載它而不是默認的HTML頁面,並讓它決定接下來會發生什麼。下面的代碼是否工作? <? $ page0 = file_get_contents(「http://games_cancelled.html」); $ page1 = file_get_contents(「http://default_page.html」); if($ page0){ echo $ page0; } else { echo $ page1; } ?> 這兩個html文件都在我的網站上。如果天氣不好,將會上傳「games_cancelled」文件,然後在不需要時刪除。 非常感謝您的幫助 – NeedyOldNoob 2009-10-14 23:46:48

+0

Whhops ...看起來像我忘記了格式準則,我不知道如何解決它 – NeedyOldNoob 2009-10-14 23:48:03

+0

這有點哈克,但是,這可能會工作:) – Husky 2009-10-15 23:06:38

1

您有機會獲得任何服務器端腳本語言,如PHP?使用PHP來代替Javascript可能會容易得多。 Javascript是客戶端,這意味着它存在於用戶的瀏覽器中,而不是存放網頁的服務器上。

PHP是服務器端,所以它會更容易看到服務器上的文件是否存在。

讓我知道你是否有能力使用PHP,我們可以從那裏開始。

+0

感謝您的回答。是的,我確實有PHP可用,實際上我已經能夠使用formmail了。不幸的是,如果可能的話,我比PHP更像PHP背後的曲線,但我正在努力學習。我欣賞並歡迎您的想法。 – NeedyOldNoob 2009-10-14 23:01:41

+1

赫斯基實際上以我將使用PHP的方式回答。看到他的答案,我要告訴你什麼。 =) 做的Javascript AJAX的東西,其他答案的建議似乎對我來說很黑。另外,由於這是一個教會網站,因此假設許多人正在使用過時的網絡瀏覽器和/或禁用Javascript和/或不具備足夠的技術知識來實現​​它。 PHP絕對是更好的解決方案。 – 2009-10-14 23:09:56

+0

是的,他的回答讓我頭上的燈泡開始閃爍。不幸的是,我把他的評論搞得一團糟,但我認爲我現在有足夠的信息來實現它。非常感謝所有回覆的人,並很快啓動。這是我第一次來這裏,我準備讓我的短褲因爲問這樣一個noob問題而火起來。很高興這不是那種方式。再次感謝。也許如果我能趕上速度,我可以作爲一個真正的貢獻者返回。祝你有個美好的一天 – NeedyOldNoob 2009-10-14 23:55:33

4

首先,你將需要包括jQuery庫:

<script src="http://code.jquery.com/jquery-latest.js"></script> 

接下來,您將需要檢查是否存在頁面:

<script type="text/javascript"> 
var path = '/THIS_IS_THE_PATH_TO/YOUR_CANCELLED_PAGE.html'; 

$(function() { 
    $.ajax({ 
    url : path, 
    success : function() { 
     alert('The page was found'); 
     // redirect to page 
     window.location = path; 
    }, 
    error : function(xhr, d, e) { 
     if (xhr.status == 404) { 
     // page not found 
     alert('The page was not found'); 
     } 
    } 
    }); 
}); 
</script> 
+0

非常感謝您的幫助。你提供的信息填補了一些空白,也爲我解決了一些語法問題。我要看看我能不能做這個工作,然後研究一下PHP的選擇。 – NeedyOldNoob 2009-10-14 23:08:07

+0

它看起來像error:section中的'xhr'對象沒有'status'屬性。如果檢查,我可以通過刪除它來獲得預期的行爲。 – meatvest 2010-01-06 13:55:34