«сбой удаленного вызова процедуры» - только IE - PullRequest
0 голосов
/ 07 апреля 2011

Я пытаюсь открыть новое окно с javascript и заполнить его HTML из текущего окна. Вроде как предварительный просмотр в новом окне и с новым CSS.

function prnt() {
        var pr = window.open("", "", "width=1020,height=750");
        pr.document.open();
        pr.document.write('<html><head><title>Test</title>');
        pr.document.write('<link href=print.css rel=Stylesheet></head><body>');
        pr.document.write(document.body.innerHTML);
        pr.document.write('</body></html>');
        pr.document.close();
        pr.focus();}  

Я вызываю эту функцию отсюда:

<a id="print" href="#" runat="server" onclick="javascript:prnt();">PRINT</a>  

IE выдает мне ошибку сбой удаленного вызова процедуры и, похоже, он указывает на эту строку:
pr.document.close ();

В FF все работает нормально. Есть идеи?

EDIT
Я работаю на Windows Server 2008 R2 Standard
SP1

EDIT2
Если я удаляю pr.document.close (); , страница прекрасно работает в IE, а done отображается в строке состояния.
Однако теперь FF не будет работать должным образом. Страница никогда не перестает загружаться. Я предполагаю, что он ждет команду pr.document.close (); ?

Ответы [ 2 ]

3 голосов
/ 07 апреля 2011

Используйте DOM ... document.write is evil .

О том, как это сделать, отметьте здесь :

1 голос
/ 07 апреля 2011

Это не так красиво, как простое решение, но, похоже, оно работает.
Я заменил эту строку кода:

pr.document.close();  

на эту строку:

if (navigator.appName != "Microsoft Internet Explorer") pr.document.close();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...