Как открыть URL в текстовом поле в отдельной рамке?

Я работаю над веб-страницей, которая будет состоять из большой основной рамки с маленькой рамкой внизу с текстовым полем и кнопкой отправки. Мне нужна кнопка отправки, чтобы изменить основной фрейм на 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>

1 ответ

Решение

Я не уверен, почему это происходит, но вы можете использовать этот обходной путь:

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 элемент.

Другие вопросы по тегам