2013-07-27 2 views
0

В настоящее время я пытаюсь манипулировать дочерним окном с javascript, написанным в его родительском. До сих пор у меня есть следующее:javascript манипулирует дочерним окном от его родителя

<!doctype html /> 

<html> 
    <head> 
     <script type="text/javascript"> 
      var otherW; 

      function open_win() { 
       otherW = window.open("https://www.youtube.com/", "otherW", "width=500, height=500, resizable"); 
       setTimeout("delay()", 5000); 
      } 

      function delay() { 
       otherW.moveTo(20, 50); 
      } 
     </script> 
     <title>Parent</title> 
    </head> 
    <body> 
     <input type="button" onclick="open_win()" /> 
    </body> 
</html> 

По какой-то причине это не работает. Возможно ли вообще манипулировать дочерним окном, когда в него загружается другой веб-сайт. Приведенный выше код отлично работает, когда я передаю пустую строку вместо URL-адреса youtube.

То, что я пытаюсь сделать в самом начале, было создание сценария в родительском окне, сценарий должен был открыть конкретный сайт в новом дочернем окне при нажатии кнопки. Затем, используя ссылку на новое окно, я должен был установить значения для полей ввода типа = «текст». К сожалению, это не сработало, поэтому я попытался с гораздо более легким и легким тестом и, наконец, понял, что даже что-то простое, как вышеприведенный код не работает. Обратите внимание, что если я заменил метод moveTo на close(), он отлично работает - дочернее окно закрывается через 5 секунд. Я попробовал это с Firefox. В Opera он только открывает дочернее окно.

Любая помощь/предложения/идеи будут оценены! Заранее спасибо!

+2

Похоже, 'moveTo()' является свойством объекта 'window' (внутри открытого окна). Вы не можете получить доступ к «окну» на третьей странице. – Teemu

+0

Тогда я предполагаю, что otherW.document.getElementsByTagName ("name") [o] .value = "somevalue" не будет работать, спросите хорошо? – Borislav

+0

Да, ты прав. Это называется [политика одного происхождения] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Same_origin_policy_for_JavaScript). Даже если вы откроете страницу со своего домена во всплывающем окне, у некоторых браузеров есть опция, которая может блокировать метод moveTo(). – Teemu

ответ

0

В данном конкретном случае, почему бы не просто попробовать:

window.open("https://www.youtube.com/", "otherW", "width=500, height=500, top=50, left=20, resizable"); 

это не должно мешать политике одного источника.

Смежные вопросы