2

这段代码在 IE6 的第 10 行给了我错误。那是,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
4

2 回答 2

6

当您打开带有来自不同域的页面的窗口时,您不会得到对该窗口的引用。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';
于 2009-11-29T14:47:11.173 回答
0

问题在这里 - ref.moveTo(0,0); - 在大多数安全设置中,此操作不可用

此外,javascript: onload 只会创建一个标签“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>
于 2009-11-29T14:42:15.990 回答