Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как открыть страницу в том же окне? window.open (https://javascript.ru/forum/misc/1957-kak-otkryt-stranicu-v-tom-zhe-okne-window-open.html)

xilol 10.10.2008 11:55

Как открыть страницу в том же окне? window.open
 
Вопрос от n00b'a;) :
есть форма:
<form name=form1>Номер варианта (1-30): 
   <input type=text name=variant size=2px maxlength=2> 
   <input type=submit value=Найти onclick=get_variant()>
  </form>

Вводим номер варианта от 1 до 30 и открывается страница n.html, где n-номер введённого варианта
function get_variant()
{
var V=form1.variant.value
 if ((V>=1)&&(V<=30)) {window.open(V+".html")}
  else {window.open("404.html")}
}

Нужно что б страница с вариантом открылась на месте старого окна, а не в новой вкладке. Поиск юзал, ниче конкретного не нашел. Вопрос как?

Octane 10.10.2008 12:03

window.location = '404.html';

jsch 10.10.2008 12:40

ответ
 
<script type="text/javascript">
<!--
function prepare_form(obj){
    var arr_elements = obj.form.elements;
    var varr=obj.form.variant.value;
    if ((varr >= 1) && (varr <= 30)){
        obj.form.action = varr+".html";
    }
    else{
        obj.form.action = "404.html";
    }
    return true;
}
// -->
</script>
    <form name="form1" action="/" method="post">
        Номер варианта (1-30):
        <input type="text" name="variant"  size="2" maxlength="2">
        <input type="submit" value="Найти" onclick="prepare_form(this)">
    </form>

jsch 10.10.2008 12:54

ответ
 
var arr_elements = obj.form.elements;

можно убрать
думал сначала все элементы доставать и искать нужный :)

xilol 11.10.2008 14:39

2 Octane Не понял куда это что это делает :confused:
2 jsch Вообще не понял :eek: Чем старый код плох?

Я так понимаю (по нубовски:rolleyes:) - window.open() "открывает" страничку в новой вкладке. Какое свойство для него прописать (если оное есть), чтобы страница открывалась на месте старой (как например в гугле - нажал кнопку и открывается страничка с результатом поиска)? Или какой объект использовать.

И еще подскажите, плиз, есть ли сайт типа htmlbook, но по яве, что бы все объекты и их свойства были расписаны. А то я юзаю поиск, но там только всякие фичи вылезают для продвинутых :o.

jsch 13.10.2008 07:21

ответ
 
to xilol

в зависимости от того что будет введено в поле:
<input type="text" name="variant"  size="2" maxlength="2">

функция prepare_form поменяет атрибут action тега form:
<form name="form1" action="/" method="post">

а потом уже срабатывает событие сабмит этой формы и происходит переход туда куда указывает атрибут action тега form

http://wdh.suncloud.ru/dhtml13.htm#hopen
"Метод open создает новое окно..."

Programmist 24.12.2008 01:29

Как вариант можно поступить так:
document.open(document.location,document.title)


Проверено, работает
P.S. Применялось в функции распечатки окна:

function PrintPage(){
document.getElementById('Link').innerText=""; //скрываем ссылку
window.print(); //Печатаем содержимое
document.open(document.location,document.title); //Отображаем ссылку
}

batonn 04.12.2009 11:38

Цитата:

Сообщение от xilol (Сообщение 6956)
Вопрос от n00b'a;) :
есть форма:
<form name=form1>Номер варианта (1-30): 
   <input type=text name=variant size=2px maxlength=2> 
   <input type=submit value=Найти onclick=get_variant()>
  </form>

Вводим номер варианта от 1 до 30 и открывается страница n.html, где n-номер введённого варианта
function get_variant()
{
var V=form1.variant.value
 if ((V>=1)&&(V<=30)) {window.open(V+".html")}
  else {window.open("404.html")}
}

Нужно что б страница с вариантом открылась на месте старого окна, а не в новой вкладке. Поиск юзал, ниче конкретного не нашел. Вопрос как?

а что window.open(V+".html", '_self') не работает?

JsLoveR 28.01.2010 22:12

batonn,
Надеюсь Вам ещё нужен код:
function linkSys(v)
	      {
	        if(v>0&&v<=7)
                        {
	                  location.href=v+".html";
			}
			
		else{location.href="404.html"}
	  
	      }

<form name="form1"><p>Номер варианта (0-8):</p>

	<select name="sel" size="9" multiple>
	    <option value="0" onclick="linkSys(this.value)">0</option>
        <option value="1" selected onclick="linkSys(this.value)">1</option>
        <option value="2" onclick="linkSys(this.value)">2</option>
        <option value="3" onclick="linkSys(this.value)">3</option>
		<option value="4" onclick="linkSys(this.value)">4</option>
		<option value="5" onclick="linkSys(this.value)">5</option>
		<option value="6" onclick="linkSys(this.value)">6</option>
		<option value="7" onclick="linkSys(this.value)">7</option>
		<option value="8" onclick="linkSys(this.value)">8</option>
    
</select>

	  </form>


Я, походу неуспел, ну, ничё, может кому-то пригодится:)

Gozar 29.01.2010 09:10

Цитата:

Сообщение от xilol (Сообщение 6983)
2 Octane И еще подскажите, плиз, есть ли сайт типа htmlbook, но по яве, что бы все объекты и их свойства были расписаны. А то я юзаю поиск, но там только всякие фичи вылезают для продвинутых :o.

по js справочники есть:

На этом есть кое-что

а так для ie смотрим тут:

remove child method

для ff:
remove child method

batonn 29.01.2010 11:01

Да нет, мне не нужно. Я удивился, что товарисчь _self не пробовал. У меня получалось.

batonn 29.01.2010 11:03

да нет мне не нужен (но вдруг пригодится) Я просто удивился , что товарисчь не пробовал _self У меня получалось.

JsLoveR 30.01.2010 00:21

batonn,
Извиняюсь, я ошибся))), хотел написать xilol, :no:

maximamus 29.01.2015 14:29

надеюсь еще ответ будет в этой теме
никак не могу решить проблему, помогите пожалуйста
нужно открыть страницу в том же окне
всплывающие окна у меня отрываются по такому коду

<div id="closeButton" onclick="document.getElementById('ch1').style.display='none'">Х</div>
 
Тут контент, который открывается
 
</div>
 
<input type="button" class="tvbt" value="Подробнее" onclick="document.getElementById('ch1').style.display='block'">


можно ли сделать так, что бы открывалась в окне страница, или же может есть другое решение?
в частности нужно решение для wordpress'a


Часовой пояс GMT +3, время: 01:12.