Ошибка доступа запрещена в IE6

Этот код дает мне ошибку в строке 10 в IE6. То есть, var ref = ...;

В чем здесь ошибка?

<html>
<head>
 <title>JavaScript Popup Example 3</title>
</head>
<SCRIPT language="JavaScript1.2">
function MyClass()
{
    this.OpenWindow = function()
    {
        var ref = window.open ("http://www.google.com", "mywindow", "location=1,status=1,scrollbars=1,width=100,height=100");
        ref.moveTo(0,0);
    }

}
</SCRIPT>
<body onload="javascript: new MyClass().OpenWindow()">
<H1>JavaScript Popup Example 3</H1>
</body>
</html> 

Сообщение:

A run-time error has occurred. 
Do you wish to debug? 

Line:10
Error: Access is denied

2 ответа

Решение

Когда вы открываете окно со страницей из другого домена, вы не получаете ссылку на окно обратно. Переменная ref равна нулю.

Если вы хотите переместить окно, вы должны открыть его без страницы, переместить его, а затем загрузить страницу в нем:

var r = window.open ('', 'mywindow', 'location=1,status=1,scrollbars=1,width=100,height=100');
r.moveTo(0,0);
r.location.href = 'http://www.google.com';

Проблема здесь - ref.moveTo(0,0); - в большинстве настроек безопасности это действие недоступно

также javascript: при загрузке просто создает ярлык "javascript"

<html>
<head>
 <title>JavaScript Popup Example 3</title>
</head>
<SCRIPT language="JavaScript">
function MyClass()
{
    this.OpenWindow = function()
    {
        var ref = window.open("http://www.google.com", "mywindow", "location=1,status=1,scrollbars=1,width=100,height=100");
        ref.moveTo(0,0);
    }

}
</SCRIPT>
<body onload="new MyClass().OpenWindow()">
<H1>JavaScript Popup Example 3</H1>
</body>
</html>
Другие вопросы по тегам