2009-03-31 4 views
0

Я использую библиотеку прототипов JavaScript для чтения содержимого текстовой области (которая часто является полной разметкой для другой страницы HTML), создайте новое окно и затем установите новое содержимое окна, чтобы быть в том же наценка, например, так:Ошибка ввода IE 7 в документ

var htmlContent = $("msHTML").value; 
var win = window.open("preview.cfm", "Preview HTML", "left=20,top=20,width=500,height=500,toolbar=0,resizable=1,scrollbars=1"); 
win.document.write(htmlContent); //TODO - throwing an error in IE 7 - Error Invalid Argument 
win.document.close(); 

Это прекрасно работает в Firefox, но как уже упоминались в комментариях, это дает недопустимое исключение довода в IE7.

Может ли кто-нибудь помочь?

Я не мог найти что-либо в библиотеке прототипов, которая могла бы обойти различия браузера при настройке содержимого документа. Я знаю, что может быть другая библиотека окон, построенная на прототипе, которая может работать, но это кажется излишним для этой проблемы, я думаю.

Заранее благодарен!

ответ

3

2-й параметр для

"Название"
window.open(url, name, features); 

в IE, НЕ ДОЛЖЕН СОДЕРЖАТЬ ПРОСТРАНСТВА. (затрагивает все версии IE)

//works 
window.open('page.html', 'mypage', ''); 

//FAILS in IE 
window.open('page.html', 'my page', ''); 
1

Удалите URL-адрес и заголовок с window.open() - это проблема, связанная с безопасностью. Вам не нужно указывать URL-адрес так же, как содержимое вашего окна перезаписи на следующей строке вашего кода.

Это работает:

var win = window.open('', '', 'left=20,top=20,' + 
     'width=500,height=500,toolbar=0,resizable=1,scrollbars=1'); 

win.document.write($("msHTML").value); 
Смежные вопросы