小弟寫了個網頁, 與平常的網頁一樣, 每頁有一個下拉選單方便用者跳去不同的頁面. 現在, 做法是每個頁面都包含下拉選單的編碼. 但久而久之, 發現當加一個或更改一個選項, 必須每個頁面作修改, 改到有點呆. 有沒有方法是各頁面都通用一個含下拉選單的HTML. 好使有改動時, 只用改一個HTML檔?
<html> <head> <title>test</title> </head> <body> <div id="dropdown"></div> ......... </body> <script src="load.js"></script> <script> load_dropdown("dropdown"); </script> </html>
function load_dropdown(obj_id){ var obj = document.getElementById(obj_id); if(obj != null){ obj.innerHtml = "<object type="text/html" data="dropdown.html" ></object>"; } }
N年前還有碰時,
是切版,上下2頁,或左右2頁,
然後把固定的選單固定在那一頁,都呼叫同一個頁面。
現在方法更多?
改用javascript load html 把html內容寫在js裡面
建議使用jQuery.ajax(),
看你是要直接載入html元素或是用json回傳再組合成select都可以
不論動靜態網頁,請愛用jQuery
使用<object type="text/html" data="xxx.html"></object>
例如:a.html
<pre class="c" name="code">
<title>test</title>
<object type="text/html" data="b.html" ></object>
b.html:
<pre class="c" name="code">
<script>
function redirect(){
var x = document.getElementById('dropdown').value;
top.location.href=x;
}
</script>
<select id="dropdown" onchange="redirect()">
<option value="http://tw.yahoo.com">Yahoo Taiwan</option>
<option value="http://www.google.com.tw">Google</option>
</select>
記得,要自動跳轉頁面,這裡不能用window.location.href,要使用top.location.href,因為object標籤會被視為一個frame,即使成功跳轉,也只有object那個區塊會被跳轉到指定url
測試在IE 11、Chrome、Edge均可正常執行:
打完收工