Не удается найти ссылку на новое окно с помощью javascript

#javascript

#javascript

Вопрос:

Я использую приведенный ниже скрипт для получения ссылки на новое открытое окно, но он не работает

Браузер FF 7, IE 9, WIN 7

Может кто-нибудь, пожалуйста, дайте мне знать, что не так в скрипте

Заранее спасибо

Akhil

     <html>
    <head>

    <script type="text/javascript">
    function open_win() 
    {
      var mywindow=window.open("http://thesun.co.uk");
      var clbutton=document.createElement("button");
      var par=document.getElementById("main");
      clbutton.setAttribute("id","focus");
      clbutton.setAttribute("value","CLICK");
      clbutton.innerHTML="CLICK";
      par.insertBefore(clbutton,null);
      clbutton.onclick=function() {alertMsg(mywindow);}
    }
    function alertMsg(mywindow)
    {
  mywindow.focus();
  var t=mywindow.location.href;
  alert(t);
  //mywindow.alert("testing");
  mywindow.close();
    }

    </script>
    </head>

      <body onload="open_win()">

         <p id="main"></p>
      </body>

    </html>
  

Комментарии:

1. У вас случайно не было «Небезопасной попытки JavaScript получить доступ к фрейму с URL thesun.co.uk/sol/homepage из фрейма с URL …» или сообщение «mywindow равно нулю» в вашей консоли?

Ответ №1:

Вы не можете получить URL-адреса сайтов, которые находятся в другом домене или протоколе, в качестве сценария, который вы запускаете. Это связано с междоменными ограничениями. Chrome выдает вам следующую ошибку: Небезопасная попытка JavaScript получить доступ к фрейму с URLhttp://www.thesun.co.uk/sol/homepage / из фрейма с URL http://fiddle.jshell.net/_display /. Домены, протоколы и порты должны совпадать.

Комментарии:

1. есть ли какое-либо решение для этого, я только что проверил в консоли ошибок FF сообщение об ошибке: «Отказано в разрешении на доступ к свойству «href», а также, если я использую MyWindow.onload=’некоторая функция оповещения’, тогда также оповещение приходит намного раньше фактического thesun.co.uk страница загружается, похоже, что она не распознает новое окно

2. Как указано в window.open документации в MDC, ваши действия в окне, открытом с помощью window.open , ограничены той же политикой происхождения . Невозможно обойти ту же политику происхождения, поскольку это важная функция безопасности всех браузеров.

Ответ №2:

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