Этот вопрос является более конкретным описанием проблемы, которую я задал в этой теме . По сути, у меня есть веб-приложение, для которого я пытаюсь использовать функцию OAuth в Twitter. Это приложение имеет ссылку, которая запрашивает у пользователя учетные данные 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? Я действительно смущен. Я не думал, что это будет так сложно.
Спасибо за любую помощь, которую вы можете оказать.