1

我想打开一个弹出窗口,window.open然后更改窗口的全部内容。

在 IE 和 Chrome 中,以下运行良好,但在firefox中不行

var Window= window.open("blanko.htm", "Win", "width=" + _iWidth + ",height=" + _iHeight + ",resizable=yes,left=" + iLeft + ",top=" + iTop + ",toolbar=1");
var Header = "<head><link rel='Stylesheet' href='CSS.css' type='text/css' /><style type='text/css'>td,th{font-size:11px;font-family:Arial;}body{font-family:Arial;font-size:12px;}</style></head>";
var Body = "<body><div>new Content</div></body>";

第一次尝试:

 $(Window.document).ready(function () {
        $(Window.document.head).append(Header);
        $(Window.document.body).append(Body);
    });

第二次尝试:

$(Window.document).ready(function () {
        $(Window.document).html(Header + Body);
});

等等

我以这种方式尝试的一切都适用于 IE 和 Chrome,但在 Firefox 中,内容正在加载,一秒钟后它被window.open参数中给出的站点替换(blanko.htm)。

4

1 回答 1

2

使用纯 Javascript 是一个非常简单的解决方案:

var mynewWindow = window.open("", "Win", "width=" + _iWidth + ",height=" + _iHeight + ",resizable=yes,left=" + iLeft + ",top=" + iTop + ",toolbar=1");

        mynewWindow.document.write(
           '<html>' + 
             '<head>' + 
               '<title>' + myTitle + '</title>' + 
               '<link rel="Stylesheet" href="CSS.css" type="text/css" />' +
               //print on screen style
               '<style media="screen"> your CSS here </style>'+
               //Optional: print on printer style
               '<style media="print"> your CSS here </style>'+
             '</head>' + 
             '<body> <div>new Content</div> </body>' + 
           '</html>'
        );

希望有帮助

(这应该适用于所有主要的互联网浏览器)

于 2013-01-16T11:19:06.160 回答