2015-09-02 115 views
0

我將創建一個網站subdomain.example.com,該網站將存在於與example.com不同的環境中。這兩個網站將具有相同的佈局以創建無縫體驗。但是,他們不會共享數據庫或代碼庫。從外部網站加載頁眉和頁腳到我的網站

我希望subdomain.example.com上的頁眉和頁腳與example.com上的頁眉和頁腳相同。 example.com頁眉和頁腳中的信息會定期更改,所以我希望能夠在subdomain.example.com上保持一致。我有什麼選擇?

編輯: example.com是一個動態的CMS,而不是靜態的HTML。我無法訪問任何代碼或模板。

+0

請進一步定義什麼你的意思是「存在於不同的環境中」?誰將會做這些改變?您是否希望將example.com作爲subdomain.example.com的變體,反之亦然?在你的問題中,你是不是很清楚你是否試圖將頁面「同步」,或者如果你試圖讓1頁非常相同,但也有一點不同。 –

+0

@MikeHorstmann,我試圖讓1頁非常相同,但也略有不同。他們將是相同的將是頁眉和頁腳。 –

回答

0

您應該使用iframe爲您的頁眉/頁腳。喜歡的東西

<iframe src="example.com/path/to/header.html"> 
+0

對不起,應該有具體說明。 'example.com'是一個動態CMS,而不是靜態HTML。我無法訪問任何代碼或模板。 –

+0

然後你應該嘗試使用ajax-request,就像fjellfly提供的那樣。只需下載example.com的html並用jQuery或其他東西解析它。 – user3278087

0

如果你可以使用PHP然後file_get_contentshttp://php.net/manual/en/function.file-get-contents.php)將是一種選擇。您可以使用正則表達式過濾相關部分 - 或者更改基礎網站傳送內容的方式。

另一種解決方案可能是使用ajax請求。在這種情況下,您還將開發基本網站如何處理請求的解決方案。但我不確定這樣的ajax請求是否會以安全警告(XSS)結束,還是由於它是相同的頂級域名而被允許。

1

那麼,這仍然有點含糊,如果你不是example.com網站的所有者,我會擔心在使用普通AJAX時發生CORS錯誤。這就是fjellfly在上面提到的(XSS)或「跨站腳本」。所以,你有幾個選擇。其中一個就是像PhantomJS或CasperJS那樣運行後端Javascript。

如果你能使用jQuery AJAX,這將是同樣簡單,下面:

$("#navIdInYourSubdomain").load("http://example.com #navToCloneFrom" 
); 
//That should either execute and load their nav element into your page 
//Or it will fail and do nothing, you could add an alert on failure 

鏈接在這裏(http://api.jquery.com/load/

在這種方法失敗了的情況下,那麼你就可以使用像phantomJS + casperJS(最簡單)或NodeJS + cheerio(NodeJS的jQuery功能)或PhantomJS本身的後端JS框架。但是,這需要後臺運行。像PhantomJS和卡斯帕這樣的無頭瀏覽器引擎的好處是,一旦你有能力與他們一起驚豔。

我會使用的最後一種方法是「和服」(https://www.kimonolabs.com/),您可以在其中創建一個API以便從任何網站/ webapp中調用。關於和服的好處是安排,以及他們爲幾個重要框架提供的預製造腳本。一旦你創建了一個API,你就可以使用和服來從你的目標站點的API刮取構造你的導航。這需要花一天時間才能找到,然後成爲有史以來最有用的工具之一。

有一點要考慮,如果你有使用jQuery的問題不相關的XSS或CORS是,一些CMS需要jQuery的符號後的負荷在這裏看到被傳遞到頁面:(https://digwp.com/2011/09/using-instead-of-jquery-in-wordpress/