Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Ошибка при изменении input дочернего окна (https://javascript.ru/forum/misc/71546-oshibka-pri-izmenenii-input-dochernego-okna.html)

KolaKola 27.11.2017 22:19

Ошибка при изменении input дочернего окна
 
Здравствуйте!
Пытаюсь изменить input дочернего окна путём:

function add(){
	var win_add = window.open("add.html","Добавить", paramsPopup);
	win_add.getElementById('name').innerHTML = 'Check';
};

Собственно выдаёт ошибку:
Uncaught DOMException: Blocked a frame with origin "null" from accessing a cross-origin frame.

Прочитал, что это из-за протокола file (запускаю локально). Можно ли это как-то обойти, не ставя на хост. Либо, есть ли какой-нибудь другой способ изменения input'ов?

Lion777 27.11.2017 23:10

всплывающее окно заблокировано браузером, что ты с инпут делаешь, извращения какие-то )))? Долго искал ))), так и не нашел...

KolaKola 28.11.2017 07:07

Извращенец, да, это про меня)))) Спасибо, но почему окно то само открывается, если заблокированы всплывающие окна?))
P.S.: Проверил, окна всплывающие разрешены.

Lion777 28.11.2017 10:19

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

KolaKola 28.11.2017 10:42

К сожалению, сейчас нет возможности, но суть такова:
Есть страничка, на ней есть кнопка, клик по этой кнопки открывает попап окно в которой есть input, вот при попытке изменить значение в input путем:
win_add.onload = function(){
        win_add.document.getElementById('nameDD').value = 'Check';
}

Выскакивает ошибка. Установил PhpShtorm и попробовал запустить через него - всё работает (там протокол localhost)

Lion777 28.11.2017 11:37

file и localhost это не протоколы. file это локальный адрес к файлу, а localhost это домен локального сервера, доступ к которому происходит по http протоколу, из-за политки безопасности js, доступ к файлам с разных доменов запрещен. Вот и не работало, file это не домен.

KolaKola 28.11.2017 11:55

Спасибо. И всё равно не пойму, почему так. И есть ли другие пути решения этой проблемы?

Lion777 28.11.2017 14:28

поставь локальный сервер и с него запускай

KolaKola 28.11.2017 14:32

Да, я это понял. Вопрос в том, что без этого я никак не изменю инпут, т.е. каким-либо другим способом?

Dilettante_Pro 28.11.2017 15:17

KolaKola,
Можно просто изменить исходный текст в add.html


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