#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 готов к новому окну.