Html 如何使用框架集从主页面菜单指向第二个主页面?
我有一个没有框架集的主页,这个主页有自己的菜单。 然后我有一个第二个“主页”,它分为4个框架(顶部、左侧、中部和右侧)。左侧框架与主页具有相同的菜单,其内容指向中间框架。 现在我的问题是,我如何从主页菜单中把它发送到第二个主页,带框架集,中间有另一个页面,等等。Html 如何使用框架集从主页面菜单指向第二个主页面?,html,css,href,frame,Html,Css,Href,Frame,我有一个没有框架集的主页,这个主页有自己的菜单。 然后我有一个第二个“主页”,它分为4个框架(顶部、左侧、中部和右侧)。左侧框架与主页具有相同的菜单,其内容指向中间框架。 现在我的问题是,我如何从主页菜单中把它发送到第二个主页,带框架集,中间有另一个页面,等等。 我是一名高中生,正在做我的最后一个项目。如果你一定要使用HTML4.01,你可以用一点“onclick”javascript来使用这种技术。 对更多帧重复该技术。 index.html: <html>
我是一名高中生,正在做我的最后一个项目。如果你一定要使用HTML4.01,你可以用一点“onclick”javascript来使用这种技术。 对更多帧重复该技术。 index.html:
<html>
<frameset rows="50%,50%">
<frame src="frame_a.htm">
<frameset cols="30%,30%,30%">
<frame src="frame_b.htm">
<frame id= "framec" >
<frame src="frame_d.htm">
</frameset>
</frameset>
</html>
frame_b.htm:
<html>
<head>
</head>
<body>
<input type="button" id="english" value="English" onClick="window.parent.document.getElementById('framec').src='english.html';" >
</body>
</html>
english.html:
<html>
<head>
</head>
<body>
<h2> This is the english Page</h2>
</body>
</html>
这是英文版
在第一个主页的url中放入一个查询字符串,如:
<ul>
<li><a href="secondpage.html?content=home">Home</a></li>
<li><a href="secondpage.html?content=about">About</a></li>
<li><a href="secondpage.html?content=contact">Contact</a></li>
</ul>
然后,对于第二个主页,使用javascript获取查询字符串参数,并相应地加载框架:
<iframe id="frame-content"></iframe>
<script type="text/javascript">
var content_to_load = getParameterByName("content");
if (content_to_load == "home") {
document.getElementById('frame-content').src = "home.html";
} else if (content_to_load == "about") {
document.getElementById('frame-content').src = "about.html";
} else if (content_to_load == "contact") {
document.getElementById('frame-content').src = "contact.html";
}
function getParameterByName(name, url) {
if (!url) url = window.location.href;
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return results[2].replace(/\+/g, " ");
}
</script>
var content_to_load=getParameterByName(“content”);
如果(内容到加载=“主页”){
document.getElementById('frame-content').src=“home.html”;
}else if(内容到加载=“关于”){
document.getElementById('frame-content').src=“about.html”;
}否则如果(内容到加载=“联系人”){
document.getElementById('frame-content').src=“contact.html”;
}
函数getParameterByName(名称、url){
如果(!url)url=window.location.href;
name=name.replace(/[\[\]]/g,\\$&);
var regex=new RegExp(“[?&]”+name+”(=([^]*)和|#|$),
结果=regex.exec(url);
如果(!results)返回null;
如果(!results[2])返回“”;
返回结果[2]。替换(/\+/g,”);
}
好吧,你可以试试这样的方法:
在主页中(无框架集):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Main Page Without Frameset</title>
</head>
<body>
<h1>Main Page Without Frameset</h1>
<ul>
<li><a href="index.html?target=google" target="main">Google</a></li>
<li><a href="index.html?target=yahoo" target="main">Yahoo</a></li>
<li><a href="index.html?target=coursera" target="main">Coursera</a></li>
</ul>
</body>
</html>
没有框架集的主页
没有框架集的主页
在您的框架集中
<script>
window.onload = function() {
var location = window.location.href;
var target = getParameterByName('target', location) !== null ? getParameterByName('target', location)+'.html' : 'middle.html';
document.getElementById("main").setAttribute("src", target);
console.log('target: ', target);
function getParameterByName(_name, _url) {
var [name, url] = [_name, _url];
if (!url) url = window.location.href;
name = name.replace(/[\[\]]/g, '\\$&');
var regex = new RegExp(`[?&]${name}(=([^&#]*)|&|#|$)`);
var results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, ' '));
};
}
</script>
<frameset rows="25%,*">
<frame src="top.html">
<frameset cols="25%,*,25%">
<frame src="left.html" name="left">
<frame src="middle.html" name="main" id="main">
<frame src="right.html" name="right">
</frameset>
</frameset>
window.onload=函数(){
var location=window.location.href;
var target=getParameterByName('target',location)!=null?getParameterByName('target',location)+'.html':'middle.html';
document.getElementById(“main”).setAttribute(“src”,target);
log('target:',target);
函数getParameterByName(\u名称,\u url){
var[name,url]=[u name,u url];
如果(!url)url=window.location.href;
name=name.replace(/[\[\]]/g,\\$&');
var regex=new RegExp(`[?&]${name}(`([^]*)和|#|$)`);
var results=regex.exec(url);
如果(!results)返回null;
如果(!results[2])返回“”;
返回组件(结果[2]。替换(/\+/g');
};
}
最后,您的left.html是…
<html lang="en">
<head>
<meta charset="UTF-8">
<title>left</title>
<style>
body {
background: #ff0;
}
</style>
</head>
<body>
<h1>Left</h1>
<ul>
<li><a href="google.html" target="main">Google</a></li>
<li><a href="yahoo.html" target="main">Yahoo</a></li>
<li><a href="coursera.html" target="main">Coursera</a></li>
</ul>
</body>
</html>
左边
身体{
背景:#ff0;
}
左边
我们在这里干什么?
首先,我们传递一个引用,以确定可以在主框架中打开的页面。之后,我们使用一个helper函数从url捕获该引用。然后,我们将此引用解析为html文件名字符串,并将其传递给“src”frame属性。仅此而已。写下您现在已经完成的工作。您的一些代码将有助于理解您试图实现的目标。您是否意识到HTML5不支持该标记。如果要滚动到其他内容,请使用id并链接到它们:除非您正在处理旧项目,否则不要使用
。它已经过时了,HTML5不支持它,它与响应性设计不兼容,甚至对SEO不利。