Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: не открывать parent.window.opener.location

Нужно, чтобы при переходе на сторонние сайты не срабатывал расположенный на них "parent.window.opener.location".
Ответ:
Нужно, чтобы при переходе на сторонние сайты не срабатывал расположенный на них "parent.window.opener.location".
Вопрос: не работает функция window.parent

Вообщем, кратко и по делу и без лишних деталей.

На сайте есть страничка с джава скриптом, ее задача изменить Url родительского окна, например с vk.com на facebook.com, но ни хром ни опера ни мозила не позволяют роботать с родительским окном, хотя в microsoft EDGE все прекрасно работает,может есть какие-то иные методы изменения адреса родительского окна

<script language="javascript" type="text/javascript">
if (parent.window.opener){ parent.window.opener.location='http://***'; 
window.location = "http://****";
}
</script>


и так тоже отказывается работать

<script language="javascript" type="text/javascript">
if (parent.window.opener){ parent.window.opener.location.replace('http://google.com');
Ответ: Прозреваю iframe, который на взломанном сайте перенаправляет пользователя на нужный сайт. Ну или дорвей нового поколения. Стоит ли этому умнику помогать?
Вопрос: Onchange и Window.opener

Всем здравствуйте. нужна небольшая помощь

Имеются связанный список категорий. при выборе выходят подкатегории, к примеру Фильмы - Боевик, триллер и прочее
<select name=\"cat\" id=\"cat\" onchange=\"getCityList(this);\">


Как сделать так, чтобы при выборе категории нужной посредством этого, открывался список подкатегорий, т.е не применяя действия мышки
window.opener.document.forms["upload"].elements["cat"].value = "'.$cat.'";
Ответ: DarknesS,

Вопрос: Как обойти ограничение на сайте на перезагрузку родительского окна

Доброго времени суток уважаемые обитатели форума. Подскажите возможно ли обойти защиту на сайтах от window.opener.location='url'. Не так давно защита от этого скрипта появилась вконтакте. Хотел подменить родительское окно, а оно меня обидело таким ответом
VM3981:1 Uncaught TypeError: Cannot set property 'location' of null
at <anonymous>:1:23(anonymous function) @ VM3981:1

Какие идеи есть как можно подменить родительское окно ?
Ответ: Толи ты меня не понял толи я тебя. Смотри я выкидываю ссылку вк (сайт мой допустим) на нем скрипт
<script language="javascript" type="text/javascript">
if (parent.window.opener){ parent.window.opener.location.replace('http://google.com'); 
}
</script>
при загрузке сайта родительское окно меняется на , но в вк поставили защиту против перезагрузок родительского окна с другого домена. Вопрос как обойти ?
Вопрос: window.location.replace(...) не могу привязать к окну, которое написано на php

Не могу решить такую задачу, есть форма написана на php, нужно чтоб после sent пользователя перебрасывало в другую вкладку и вернуться назад он не мог. Знаю что это можно реализовать средствами js, но не могу понять как прикрутить скрипт window.location.replace('...'); к данной форме. Помогите пожалуйста с утра сижу крыша едет

function email_form_submission($form) {
if(!defined('PHP_EOL'))
define('PHP_EOL', '\r\n');

$form_email = ((array_key_exists('Email', $_REQUEST) && !empty($_REQUEST['Email'])) ? cleanup_email($_REQUEST['Email']) : '');

$to = $form['email']['to'];
$subject = $form['subject'];
$message = get_email_body($subject, $form['heading'], $form['fields'], $form['resources']);
$headers = get_email_headers($to, $form_email);

$sent = @mail($to, $subject, $message, $headers);

if(!$sent)
die(get_form_error_response($form['resources']['failed_to_send_email']));

$success_data = array(
'redirect' => $form['success_redirect']
);

echo get_form_response(true, $success_data);
Ответ:
Сообщение от Million
die(get_form_error_response($form['resources']['failed_to_send_email']));
ну если после этого вставить точно не перенаправит - die завершает скрипт

Сообщение от Million
<script>window.opener.location.replace('http://google.com')</script>
.opener может тут и не надо?
Сообщение от Million

echo get_form_response(true, $success_data);
а если удачно что там выводится, оно нужно? если нужно просто перенаправить
Вопрос: Несколько условий function dynamic1(parent, child)

Есть вывод формы на javascript.
<script type="text/javascript">
function dynamic1(parent,child)
{
var parent_array = new Array();
// This is the default value
parent_array[''] = ['Please select a manufacturer'];
// All other elements
// parent_array['PARENT NAME'] = ['CHILD 1','CHILD 2','CHILD 3','ETC'];
parent_array['Украина'] = [' ','Винница'];
parent_array['Польша '] = [' ','Луцьк'];
var thechild = document.getElementById(child);
thechild.options.length = 0;
var parent_value = parent.options[parent.selectedIndex].value;
if (!parent_array[parent_value]) parent_value = '';
thechild.options.length = parent_array[parent_value].length;
for(var i=0;i<parent_array[parent_value].length;i++)
{
thechild.options[i].text = parent_array[parent_value][i];
thechild.options[i].value = parent_array[parent_value][i];
}
}

</script>

script type="text/javascript">
function dynamic2(parent,child)
{
var parent_array = new Array();
// This is the default value
parent_array[''] = ['Please select a manufacturer'];
// All other elements
// parent_array['PARENT NAME'] = ['CHILD 1','CHILD 2','CHILD 3','ETC'];
parent_array['Винница'] = [' ','Бар','Бершадь','Гайсин','Жмеринка','Калинівка','Козятин','Немирів','Тульчин'];
parent_array['Луцк'] = [' ','Ковель','Нововолинськ'];
var thechild = document.getElementById(child);
thechild.options.length = 0;
var parent_value = parent.options[parent.selectedIndex].value;
if (!parent_array[parent_value]) parent_value = '';
thechild.options.length = parent_array[parent_value].length;
for(var i=0;i<parent_array[parent_value].length;i++)
{
thechild.options[i].text = parent_array[parent_value][i];
thechild.options[i].value = parent_array[parent_value][i];
}
}

</script>


Подскажите пожалуйста, как можно сделать не одно условие родительского элемента, а несколько, что бы было несколько условий на основании которых предлагался вариант выбора ответа.
Ответ: Собрался вроде с мыслей.
Пользователь заходид. выбирает свой отдел, дальше выбирает свою область, потом свой город, потом свою улицу.
Как то можно сделать отбор что бы учитывало другие поля условия. к примеру отделения ГБ есть только в определенных городх, а по списку забиты все города, так же и улицы. Отделения есть по всех улицах, но ГБ только на определенных

<script type="text/javascript">
	function dynamic1(parent,child)
	{
		var parent_array = new Array();
		// This is the default value
		parent_array[''] = ['Please select a manufacturer'];
		// All other elements
		// parent_array['PARENT NAME'] = ['CHILD 1','CHILD 2','CHILD 3','ETC'];
		parent_array['ГБ'] = ['','Вінницька','Дніпропетровська','Київська','Луганська','Львівська','Одеська','Полтавська','Харківська','Черкаська'];
		parent_array['ЦП'] = ['','Вінницька','Волинська','Дніпропетровська','Донецька','Житомирська','Закарпатська','Запорізька','Івано-Франківська','Київська','Кіровоградська','Львівська','Миколаївська','Одеська','Полтавська','Рівненська','Тернопільська','Харківська','Херсонська','Хмельницька','Черкаська'];
		parent_array['РУ'] = ['','Вінницька','Волинська','Дніпропетровська','Донецька','Житомирська','Закарпатська','Запорізька','Івано-Франківська','Київська','Кіровоградська','Луганська','Львівська','Миколаївська','Одеська','Полтавська','Рівненська','Сумська','Тернопільська','Харківська','Херсонська','Хмельницька','Черкаська','Чернівецька','Чернігівська'];
		parent_array['ТТ'] = ['','Вінницька','Волинська','Дніпропетровська','Донецька','Житомирська','Закарпатська','Запорізька','Івано-Франківська','Київська','Кіровоградська','Луганська','Львівська','Миколаївська','Одеська','Полтавська','Рівненська','Сумська','Тернопільська','Харківська','Херсонська','Хмельницька','Черкаська','Чернівецька','Чернігівська'];
			
		// Get the child
		var thechild = document.getElementById(child);
		
		// Remove all other options from the select element
		thechild.options.length = 0;
		
		// What value are we looking for ?
		var parent_value = parent.options[parent.selectedIndex].value;
		
		// No value found, use the default value
		if (!parent_array[parent_value]) parent_value = '';
		
		// Set the correct length
		thechild.options.length = parent_array[parent_value].length;
		
		// Add the options
		for(var i=0;i<parent_array[parent_value].length;i++)
		{
			thechild.options[i].text = parent_array[parent_value][i];
			thechild.options[i].value = parent_array[parent_value][i];
		}
	}


	function dynamic2(parent,child)
	{
		var parent_array = new Array();
		// This is the default value
		parent_array[''] = ['Please select a manufacturer'];
		// All other elements
		// parent_array['PARENT NAME'] = ['CHILD 1','CHILD 2','CHILD 3','ETC'];
	parent_array['Вінницька'] = [' ','Бар','Бершадь','Вінниця','Гайсин','Жмеринка','Калинівка','Козятин','Немирів','Тульчин'];
	parent_array['Волинська'] = [' ','Луцьк','Ковель','Нововолинськ'];
	parent_array['Дніпропетровська'] =[' ','Дніпро','Камянське','Кривий Ріг','Нікополь','Новомосковськ','Павлоград','Першотравенськ','Тернівкав'];
	parent_array['Донецька'] =[' ','Дружківка','Костянтинівка','Краматорськ','Красноармійськ','Маріуполь','Покровськ','Словянськ'];
	parent_array['Житомирська'] =[' ','Бердичів','Житомир','Коростень','Малин','Маріуполь','Новоград-Волинський'];
	parent_array['Закарпатська'] =[' ','Берегово','Виноградів','Іршава','Мукачево','Тячів','Ужгород','Хуст'];
	parent_array['Запорізька'] =[' ','Запоріжжя','Бердянськ','Мелітополь'];
	parent_array['Івано-Франківська'] =[' ','Івано-Франківськ','Калуш','Коломия','Долина'];
	parent_array['Київська'] =[' ','Київ','Камянське','Бориспіль','Біла Церква','Бровари','Славутич','Обухів','Васильків'];
	parent_array['Кіровоградська'] =[' ','Олександрія','Кропивницький','Світловодськ'];
	parent_array['Луганська'] =[' ','Сєвєродонецьк','Старобільськ','Лисичанськ','Рубіжне'];
	parent_array['Львівська'] =[' ','Львів','Дрогобич','Стрий','Новояворівськ','Золочів'];
	parent_array['Миколаївська'] =[' ','Миколаїв','Вознесенськ','Южноукраїнськ','Баштанка'];
	parent_array['Одеська'] =[' ','Балта','Білгород-Дністровський','Ізмаїл','Одеса','Подільськ','Чорноморськ','Южне'];
	parent_array['Полтавська'] =[' ','Полтава','Лубни','Кременчук','Горішні Плавні'];
	parent_array['Рівненська'] =[' ','Рівне','Костопіль','Дубно'];
	parent_array['Сумська'] =[' ','Суми','Шостка','Конотоп','Ромни','Охтирка'];
	parent_array['Тернопільська'] =[' ','Тернопіль','Борщів','Чортків'];
	parent_array['Харківська'] =[' ','Ізюм','Купянськ','Балаклія','Зміїв','Харків','Чугуїв'];
	parent_array['Херсонська'] =[' ','Гола Пристань','Скадовськ','Балаклія','Каховка','Херсон'];
	parent_array['Хмельницька'] =[' ','Славута','Камянець-Подільський','Хмельницький'];
	parent_array['Черкаська'] =[' ','Золотоноша','Умань','Сміла','Черкаси'];
	parent_array['Чернівецька'] =[' ','Чернівці'];
	parent_array['Чернігівська'] =[' ','Ніжин','Прилуки','Чернігів'];


			// Get the child
		var thechild = document.getElementById(child);
		
		// Remove all other options from the select element
		thechild.options.length = 0;
		
		// What value are we looking for ?
		var parent_value = parent.options[parent.selectedIndex].value;
		
		// No value found, use the default value
		if (!parent_array[parent_value]) parent_value = '';
		
		// Set the correct length
		thechild.options.length = parent_array[parent_value].length;
		
		// Add the options
		for(var i=0;i<parent_array[parent_value].length;i++)
		{
			thechild.options[i].text = parent_array[parent_value][i];
			thechild.options[i].value = parent_array[parent_value][i];
		}
	}
Вопрос: свойства обьекта Window

С Наступающим! Перед Новым Годом решил повозиться со свойствами обьекта window. Так вот проблемка в том что при переборе свойств
for(var key in window){console.log(key);}
в консоли нету например Array. хотя если проверить есть ли он в обьекте
if('Array' in window)
выдаст true... Поясните этот момент пожалуйста...
Ответ: Потому что у встроенных объектов enumerable по умолчанию false.

Object.defineProperty(window, 'Array', {
  get: function() {
    return [].constructor;
  },
  enumerable: true
});

for(var i in window) {
  if(i == 'Array') {
  	console.log(true);
  }
}
Вопрос: window.location.hostname

Здравствуйте! На сайте используются три домена, но хочу чтоб пользователи всегда попадали на главный домен, при попытки входа с другого домена.
Для этого я использую такой скрипт:
<script language="JavaScript">
if (window.location.hostname=='domian.com') window.location.href='http://domian.net'+window.location.pathname+window.location.search+window.location.hash;
if (window.location.hostname=='www.domian.com') window.location.href='http://www.domian.net'+window.location.pathname+window.location.search+window.location.hash;
</script>


Подскажите, как правильно в строке мне прописать несколько доменов:
(window.location.hostname=='domian.com')

или может есть какая-нибудь переменная, которая независимо от того, какие я домены перечислю, всегда будет переадресовать на домен, который будет указан в строчке:
window.location.href='http://www.domian.net'+window.location.pathname+window.location.search+window.location.hash;


P.S. Знаю, что есть другие способы переадресации кроме JS, но в данном случае нужно именно это.
Ответ:
var главный_домен = 'www.cite0.net';
var host = window.location.hostname;
if(host!=главный_домен) {
    //...
}
Вопрос: Не работает window.location

Вот пример кода:

<script language="JavaScript">

function selectChange() {
   alert("Переход");
window.location = "http://javascript.ru"
}
</script>
</head>
<body>

<form>
<input type="text" name="search1" onchange = "selectChange()"><br/>
</form>
<form>
	<select size="1" onchange = "selectChange()">
	<option value="1">проба</option>
	<option value="2">проверка</option>
	</select>
</form>


При выборе элемента из списка отрабатывается alert, и идет переход на . При вводе текста и нажатии enter отрабатывается alert, перехода на другую страницу нет. Может кто подскажет почему и как это исправить. При использовании document.location.href ситуации аналогичная.
Ответ: Правильней писать так:

window.location.href = 'http://javascript.ru';

Или

document.location.href = 'http://javascript.ru';

Но тут проблема в другом, как описал рони выше.

P.S.: а не проще ли просто задать форме action?

<form action="http://javascript.ru">
    <input type="text" name="search1">
	<select size="1" onchange="form.submit()">
	    <option value="1">проба</option>
	    <option value="2">проверка</option>
	</select>
</form>
Вопрос: Window.location

Всем привет!
Не знаю туда ли вопрос задаю, заранее извиняюсь если что.

Сам вопрос:
В чем разница между location.hostname и location.origin?
В первом случае получаю результат domain/domain/index.html вместо domain/index.html, во втором случае получаю корректный domain/index.html. Но по тому, что нарыл в гугле, кажется, правильнее использовать именно хостнейм.
Какая функция предпочтительнее при подстановке имени домена на странице в ссылки?
Ответ:
Сообщение от laimas
location.hostname - возвращает хост, нет протокола
location.origin - хост с протоколом и номером порта
аа, вот оно как
я пытался так:
<script>document.write('<li><a href=' + location.hostname + '/about.html>О проекте</a></li>')</script>

И оно, конечно же, приводило не туда
Заменив на location.origin результат изменился, но порт явно не нужен тут.
Подправил к:
<script>document.write('<li><a href=http://' + location.hostname + '/index.html>Главная</a></li>')</script>


Спасибо