1

我正在开发一个由大型主框架组成的网页,底部有一个小框架,带有一个文本框和提交按钮。我需要提交按钮来将主框架更改为文本框中的 url。我的代码在下面,但它仅在 url 以文件名结尾(例如 index.htm)时才有效。如果 url 以 .com 或 /folder/ 结尾(假定为 index.htm),它将不起作用。我该如何解决?

这是我的 html/javascript。在我的 index.htm 我有:

<html>
<head>
<title>Menu Bar</title>
</head>
<frameset rows="*,30">
<frame src="main.html" name="main" id="main">
<frame src="menu.html" name="menu" id="menu">
</frameset>
<body>
</body>
</html>

main.html 基本上是一个空白的 html 文档(它只有基本的 html、head 和 body 格式)。

这是menu.html:

<html>

<head>
<script language="JavaScript">
function go(){
URL = document.myForm.theURL.value;
parent.main.location=URL;
}
</script>

</head>
<body>

<form name="myForm">
<input type="text" name="theURL" size="50">
<input type="button" value="Go" onClick="go()">
</form>

</body>

</html>
4

1 回答 1

0

我不确定为什么会发生这种情况,但您可以使用以下解决方法:

function go(){
    var URL = document.getElementById('myForm').theURL.value;
    if (URL) {
        url = URL.split('/');
        if (url[url.length - 1].indexOf('index.htm') < 0) {
            url[url.length] = 'index.htm';
            URL = url.join('/');
        }
    } else {return;}
    parent.main.location.href = URL;
    // or: parent.main.contentWindow.location.href = URL;
}

要使用它,您需要设置id="myForm"formelement。

于 2013-08-02T21:51:17.090 回答