嗯,你可以试试这样的:
在您的主页中(没有框架集):
<!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>
最后,你的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>
我们在这里做什么?
首先,我们传递一个可以在主框架中打开的页面的参考。之后,我们使用辅助函数从 url 中捕获此引用。然后,我们将此引用解析为 html 文件名字符串,并将其传递给我们的“src”框架属性。就是这样。