Этот вопрос является более конкретным описанием проблемы, которую я задал в этой теме. По сути, у меня есть веб-приложение, для которого я пытаюсь использовать функцию Twitter OAuth. В этом приложении есть ссылка, по которой пользователю предлагается ввести учетные данные Twitter. Когда пользователь щелкает эту ссылку, открывается новое окно с помощью JavaScript. Это окно служит диалоговым окном. Когда пользователь щелкает ссылку, он перенаправляется на сайт Twitter в диалоговом окне. На сайте Twitter пользователь может ввести свои учетные данные Twitter. Когда они предоставят свои учетные данные, они будут перенаправлены обратно на страницу моего сайта в диалоговом окне. Это достигается с помощью URL-адреса обратного вызова, который может быть установлен для приложений на сайте Twitter.
Все, что я пытаюсь сделать, это прочитать URL-адрес открытого окна. Я пытаюсь прочитать URL-адрес, чтобы обнаружить изменение, чтобы я мог соответствующим образом отреагировать и записать в HTML DOM на стартовой странице. Однако всякий раз, когда я пытаюсь прочитать URL-адрес диалогового окна, я получаю сообщение об ошибке «В разрешении отказано». Чтобы изолировать и воссоздать проблему, я создал следующий тест, который показывает проблему.
<html>
<body>
<input type="button" value="test" onclick="startTest();" />
<script type="text/javascript">
var dwin = null;
var timeoutID = 0;
function startTest()
{
dwin = window.open("http://www.google.com", "dialog", "height=600,width=800", true);
timeoutID = setTimeout("timerElapsed()", 1000);
}
function timerElapsed()
{
if (timeoutID == 5)
{
clearTimeout(timeoutID);
alert("We're done!");
}
else
{
if (dwin != null)
{
alert(dwin.location);
}
timeoutID = setTimeout("timerElapsed()", 1000);
}
}
</script>
</body>
</html>
Как мне получить dwin.location? Я действительно смущен. Я не думал, что это будет так сложно.
Спасибо за любую помощь, которую вы можете оказать.