Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / JavaScript rederection / 24 сообщений из 24, страница 1 из 1
22.09.2013, 17:42
    #38404027
Areostar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript rederection
как делать перенаправление на JS я знаю:

Код: javascript
1.
window.location.href = "http://www.site.com";



Но вот как открывать сайт в новом табе\новом окне?
...
Рейтинг: 0 / 0
22.09.2013, 20:21
    #38404123
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript rederection
AreostarНо вот как открывать сайт в новом табе\новом окне?
Так же как и раньше...

Код: javascript
1.
window.open(...);
...
Рейтинг: 0 / 0
22.09.2013, 21:22
    #38404165
Areostar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript rederection
Спасибо
...
Рейтинг: 0 / 0
24.09.2013, 06:53
    #38405457
ZardoZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript rederection
вот только если эту функцию положить на кнопку или ссылку, то она откроет новую вкладку

функция открытия и получения фокуса
Код: javascript
1.
2.
3.
4.
function ShowDetailWindowInTab(url, cpt) {
    var a = window.open(url, cpt);
    a.focus();
}




а если она будет вызвана из другой функции по ссылке, то она откроется в новом окне.
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
function MonitorList_SelectRow() {
    window.gMonitor.GetSelectedFieldValues("field1", OnGetSelectedFieldValues); //из библиотеки с колбек функцией
    ShowDetailWindowInTab("asdsd.aspx", "window1");  <---- тут откроется в новой вкладке
end;

function OnGetSelectedFieldValues();
{
   ....
  ShowDetailWindowInTab("asdsd.aspx", "window1");  <--- тут откроется в новом окне
}



Кто-нибудь знает как это исправить?
...
Рейтинг: 0 / 0
24.09.2013, 09:40
    #38405541
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript rederection
Areostarа если она будет вызвана из другой функции по ссылке, то она откроется в новом окне.Такого по идее не должно быть. Это во всех браузерах проявляется?
...
Рейтинг: 0 / 0
24.09.2013, 09:42
    #38405544
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript rederection
ZardoZа если она будет вызвана из другой функции по ссылке, то она откроется в новом окне.
Код: javascript
1.
2.
3.
4.
5.
function OnGetSelectedFieldValues();
{
   ....
  ShowDetailWindowInTab("asdsd.aspx", "window1");  <--- тут откроется в новом окне
}



Кто-нибудь знает как это исправить?
Что за зверь такой ShowDetailWindowInTab ?
...
Рейтинг: 0 / 0
24.09.2013, 09:45
    #38405550
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript rederection
krvsa,

Просыпайся уже, в том же посте ее исходник. :)
...
Рейтинг: 0 / 0
24.09.2013, 13:22
    #38405959
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript rederection
AntonariyПросыпайся уже, в том же посте ее исходник. :)
Ох ёёё...
...
Рейтинг: 0 / 0
25.09.2013, 01:50
    #38406689
ZardoZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript rederection
AntonariyAreostarа если она будет вызвана из другой функции по ссылке, то она откроется в новом окне.Такого по идее не должно быть. Это во всех браузерах проявляется?

Opera 16, Google Chrome 28-29, Яндекс.Браузер, Меил.Интернет. При вызове из колбэк функции открывается новое окно (в опере еще и 100х100 пикселей), а не вкладка. Если такое окно уже существовало, то оно обновляется, но фокус не передается (a.focus() не работает).

IE 9-11, FireFox 23 открывается во вкладке, но фокус не передается (a.focus() не работает).

Повторюсь при прямом вызове опять же все впорядке. Может нужно как-то передать контекст окна... Я хз даже.
...
Рейтинг: 0 / 0
25.09.2013, 10:28
    #38406877
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript rederection
Прям заинтриговали...

Сделал тестовый пример...

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
<!DOCTYPE html>
<html>
<head>
<!--
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
var i=0;
function test() {
	openWin('tmp1.html','win'+(i++));
}
function openWin(url, cpt) {
    var a = window.open(url, cpt);
    a.focus();
}
</script>
</head>
<body>
<body>
<input type="button" value="Open" onclick="test();">
</body>
</body>
</html>



Запустил в:
Опере - вкладка
ФФ - вкладка
Хром - вкладка
ИЕ8 - новое окно (но он у меня так все window.open() и открывает)

P.S.
Пример того tmp1.html для т.с. чистоты эксперимента...

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<!DOCTYPE html>
<html>
<head>
<title>Index</title>
<style type="text/css">
</style>
</head>
<body>
<p>new window</p>
</body>
</html>
...
Рейтинг: 0 / 0
25.09.2013, 10:54
    #38406920
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript rederection
krvsa ИЕ8 - новое окноУ него это регулируется настройкой.
...
Рейтинг: 0 / 0
25.09.2013, 11:22
    #38406969
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript rederection
AntonariyУ него это регулируется настройкой.
Я знаю.
Просто такое его поведение меня устраивает.
...
Рейтинг: 0 / 0
25.09.2013, 17:25
    #38407588
ZardoZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript rederection
У вас тут просто не колбэк. Вложенный вызов и у меня работает корректно.
...
Рейтинг: 0 / 0
25.09.2013, 18:12
    #38407628
Имя пользователя1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript rederection
вроде если сабмиттить форму (вместо window.open), то IE7+ будет на новой вкладке открывать
...
Рейтинг: 0 / 0
25.09.2013, 20:22
    #38407729
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript rederection
ZardoZУ вас тут просто не колбэк. Вложенный вызов и у меня работает корректно.
Где твой тестовый пример?
Пока только слова...
...
Рейтинг: 0 / 0
25.09.2013, 22:10
    #38407800
ZardoZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript rederection
krvsaZardoZУ вас тут просто не колбэк. Вложенный вызов и у меня работает корректно.
Где твой тестовый пример?
Пока только слова...

Пардоньте, я не думал что его сложно воспроизвести:

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
<!DOCTYPE html>
<html>
<head>
<!--
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
var i=0;
function OnCallback() {
	openWin('tmp1.html','win'+(i++));
}

function test(callback) {
	setTimeout(callback, 3000);	
}

function openWin(url, cpt) {
    var a = window.open(url, cpt);
    a.focus();
}
</script>
</head>
<body>
<body>
<input type="button" value="Open" onclick="test(OnCallback);">
</body>
</body>
</html>
...
Рейтинг: 0 / 0
26.09.2013, 08:26
    #38407990
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript rederection
ZardoZя не думал что его сложно воспроизвести
В тестах ничего придумывать самому не нужно. Иначе нет чистоты эксперимента. Т.е. все будут делать разное, а нужно делать один в один.

Результаты:
Опера - вкладка (блокировалось)
ФФ - вкладка (блокировалось)
Хром - окно (блокировалось)
ИЕ8 - окно
...
Рейтинг: 0 / 0
26.09.2013, 08:49
    #38407999
ZardoZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript rederection
krvsa,

Есть идеи как это исправить? Подозрева, что все дело в асинхронном вызове. Я так подозреваю, что нужно сохранить контекст до вызова функции с колбеком, а в колбеке его восстановить. Но что в данном случае сохранять не могу представить.
...
Рейтинг: 0 / 0
26.09.2013, 08:52
    #38408003
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript rederection
ZardoZПодозрева, что все дело в асинхронном вызове.
У меня такие же подозрения...

ZardoZЕсть идеи как это исправить?
Х/з...
Это ведь браузеры так все воспринимают... А у них настроек тьма...
Покопайся в тех настройках... Может что и получится...
...
Рейтинг: 0 / 0
26.09.2013, 14:32
    #38408503
Имя пользователя1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript rederection
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
<html>
	<head>
		<title>bvnbvn</title>
		<script type="text/javascript">
		function goodOpen() {
			var url = "http://www.sql.ru";
			var form = document.createElement("form");
			form.action = url;
			form.target = "_blank";
			document.body.appendChild(form);
			form.submit();
		}
		</script>
	</head>
	<body>
		<input type="button" value="1111" onclick="goodOpen();" />
	</body>
</html>
...
Рейтинг: 0 / 0
26.09.2013, 19:51
    #38408952
ZardoZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript rederection
Имя пользователя1,

В FF и IE пашет нормально (window.open() тоже нормально после запрета блокировки).

Opera по прежнему окно 200*200 пикселей открывает. В Chrome и его аналогах ничего не изменилось - окно. Похоже тут просто проблема в самих браузерах.
...
Рейтинг: 0 / 0
26.09.2013, 19:59
    #38408956
ZardoZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript rederection
a.open(); по прежнему нигде не пашет.
...
Рейтинг: 0 / 0
27.09.2013, 03:15
    #38409166
asws
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript rederection
window.open(...) срабатывает в течение 1000 мс после события, инициируемого прямыми действиями пользователя.
Если прошло более 1000 мс, или пользователь специально не "генерировал события" своими действиями,
то по-умолчанию новоле окно/вкладка будет блокировано до подтверждения пользователем.
(например, попробуйте сделать body onload="window.open(...)" - облом).
...
Рейтинг: 0 / 0
27.09.2013, 05:51
    #38409184
ZardoZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript rederection
Еще раз уточню - все всплывающие окна разрешены и настроены как новая вкладка.
Проблема в том, что при асинхронном вызове window.open() ведет себя не так как в синхронном в одной и той же тестовой среде. Особо страдают Chrome подобные браузеры и Opera.
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / JavaScript rederection / 24 сообщений из 24, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]