如何在单独的框架中的文本框中打开url

How to open a url in a text box in a separate frame?

本文关键字:url 文本 框架 单独      更新时间:2023-09-26

我正在开发一个网页,该网页将由一个大的主框架组成,底部有一个小框架,其中有一个文本框和提交按钮。我需要提交按钮将主框架更改为文本框中的url。我的代码如下,但只有当url以文件名(例如index.htm)结尾时,它才有效。如果url以.com或/folder/where 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>

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

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"设置为form元素。