2009-05-22 109 views
2

有2个html文件,file-1.htm和file-2.htm。还有另一个html文件test.htm,其下拉列表有2个值,“Load Sample-1”和“Load Sample-2”。动态插入另一个HTML文件?

这是我正在尝试的: 当从下拉列表中选择“Load Sample-1”时,应该在test.htm中将file-1.htm作为嵌套html加载。

现在,我可以通过将test.htm中的file-1.htm和file-2.htm内容通过javascript来实现此目的。 Bt随着下拉变大,test.htm将变得巨大。如何通过为下拉菜单中的每个条目分别创建html文件来实现?

回答

8

为什么你不使用<iframe>,然后让JavaScript动态地改变iframe的来源?

这里是演示如何使用这一个最基本的页面:

<html> 
<head> 
<script type="text/javascript"> 
var changePage = function() { 
    var iframe = document.getElementById("myiframe"); // One of the many ways to select your iframe 
    var select = document.getElementById("pageselected"); 
    var url = select.options[select.selectedIndex].value; 
    iframe.src = url; 
} 
</script> 
</head> 
<body> 
<select id="pageselected"> 
    <option value="page1.html">Page 1</option> 
    <option value="page2.html">Page 2</option> 
</select> 
<input type="button" onclick="changePage()" value="Change Page" /> 
<iframe id="myiframe"></iframe> 
</body> 
</html> 

你可能会问自己:“为什么他不直接使用onchange<select>嘛,我有一个小规模战争走向何方?与<select> + onchangeI detail here,但基本上都采用它使你的网站完全不能只键盘的用户谁使用Internet Explorer 6或7。(不知道这是在8仍然打破)

+0

+1 - 我认为这是实现效果的最简单方法。 – 2009-05-22 20:12:33

+0

感谢您的回答。如何更改不同的html文件的网址?你能否展示完整的JavaScript文件是怎么样的? – user32262 2009-05-22 22:29:27

0

如果下拉是“巨大的”,那么我会建议不再使用请下载并查看一些现有的自动完成框,以供选择。

如果有成百上千的选项,下拉不再是适当的表单元素。