2012-03-14 82 views
0

我有一個簡單的HTML導航欄,我不想爲每個頁面重新創建。我知道我可以簡單地使用PHP來做到這一點,但有沒有簡單的方法來使用jQuery?包含使用jQuery的通用代碼?

如果是這樣,這是否「corrcect」這樣做?

+2

99.999%的時間,這是**不正確的做法。 – 2012-03-14 12:32:14

回答

0

這是很簡單的JavaScript(至少如果使用jQuery)創建HTML,並將其插入到每一個包含.js文件的文檔,所有你需要做的是一樣的東西:

$('<div id="mydiv"><span>Hello World</span></div>').appendTo('somelement'); 

在另一方面,除非有一些很好的理由,否則這是一個糟糕的主意,因爲將HTML混合到JavaScript中被認爲是不好的做法。 它會給用戶沒有JS問題,並且它會爲你創建更多的問題,因爲現在元素是動態插入的,事件和監聽器必須相應地設置!

+1

你可以有效地瀏覽沒有JS了嗎?這是一個真正的問題來處理? – maddogandnoriko 2012-03-14 12:15:37

+2

@maddogandnoriko:是的。如果沒有其他,爲了可訪問性原因。 – 2012-03-14 12:20:27

+1

大部分情況下,我停止迎合那些沒有Javascript的人。幾乎每個人,包括移動客戶端,都有能力支持JS。至多,我會添加一個無腳本通知他們他們需要JS。 – xbonez 2012-03-14 12:23:28

0

如果你有一個生成導覽列一些JavaScript代碼 - 然後就在您的標記中調用該腳本:

<script type="text/javascript" src="path_to_your_script"></script>

如果包含此腳本不止一次用戶的瀏覽器將最有可能緩存腳本,並在下次請求時從緩存中加載它。

基本上所有的HTML都是在用戶每次到達頁面時「重新創建」的。即使使用PHP,代碼也會在每次加載頁面時執行。


在用戶已禁用JavaScript的情況下(可能性不大,但仍有可能 不寒而慄),你可能想實現一個交換你的jQuery的導航欄的PHP生成導航欄回退系統。爲此,您可以使用
<noscript>標籤。

(taken from here)

<script type="text/javascript"> 
    document.write('<b>Hello Javascript World</b>'); 
</script> 
<noscript> 
    Hello World Without Javascript 
</noscript> 
0

的Javascript應該用於將功能添加到現有的元件。使用它來創建導航結構非常危險 - 如果用戶禁用JavaScript,用戶將如何瀏覽您的網站?

我會把你的代碼放在一個PHP包含文件中。