Window.open не работает в IE8? - PullRequest
29 голосов
/ 18 сентября 2009

Это JavaScript, который я сейчас использую:

window.open('/modules/mod_oneononechat/chatwindow.php?key='+key+'&color=blue','x'+winName+'x','location=0,status=0,toolbar=0,menubar=0,resizable=0,scrollbars=0,height=375,width=420');

Кажется, это не работает в IE8. Это окно чата, которое отлично работает во всех других браузерах (включая IE7). Есть идеи, почему он не работает на IE8?

Ответы [ 11 ]

71 голосов
/ 04 октября 2009

IE8 не любит пробелы в имени окна.

4 голосов
/ 20 июня 2012

В IE8 нижеприведенная функция не открывала новое всплывающее окно, тогда как она прекрасно работала в Mozilla и Chrome.

function openReports(reportUrl){
   window.open(reportUrl,'Report Information','height=800,width=1000,left=200,top=200,toolbars=no,resizable=no,scrollbars=auto,location=no');
}

Удаление пробела (Report Information) из имени окна решило проблему и для меня.

4 голосов
/ 26 мая 2012

Удаление пробела из имени окна решило проблему.

1 голос
/ 12 февраля 2014
var newWin = window.open('', '', 'width=400, height=400, top=100, left=100');

В IE8 Использование Первые два аргумента должны быть пустыми, а затем они работают в IE8.

1 голос
/ 12 декабря 2011

window.open имеет три параметра: url, windowname, otherfeatures.

Для FF, если второй параметр (windowname) не передан, он все еще работает:)

Но в IE 7,8, который мы тестировали, мы должны передать второй параметр

1 голос
/ 11 марта 2011

У меня тоже была проблема с этим вопросом. Я написал такую ​​функцию, как

function newPopup(url) {
      popupWindow=window.open(url,'Detailed Informations','height=700,width=1000,left=10,top=10,resizable=yes,scrollbars=yes,toolbar=yes,menubar=no,location=no,directories=no,status=yes')
}

где в имени окна был пробел, т.е. "Подробная информация", и из-за этого всплывающее окно не работало Просто не ставьте пробелы в имени окна.

1 голос
/ 18 сентября 2009

Это работает для меня:

javascript:window.open('http://google.com', 'x'+'winName'+'x', 'location=0', 'status=0', 'toolbar=0', 'menubar=0', 'resizable=0', 'scrollbars=0', 'height=375', 'width=420');
0 голосов
/ 31 мая 2013

В IE, если вы открываете одно окно с помощью window.open() - снова, если вы хотите открыть новое окно с помощью window.open(), оно не откроет новое окно.

Для этого решения - IN Window.open параметры передают этот параметр "copyhistory=no".

например:

WindowName = window.open('','Name','height=320,width=428,toolbar=no, 
     menubar=no,scrollbars=no, resizable=no,location=no, directories=no,    
     status=no,copyhistory=no');

Надеюсь, это будет полезно для вас.

0 голосов
/ 02 мая 2011

Если вы используете пробелы или тире в имени окна, IE не будет работать (по крайней мере, некоторые версии, которые я использовал).

0 голосов
/ 18 сентября 2009

Для MSIE 5.5 / 6.0 была выпущена статья поддержки под названием Q281679 от Microsoft. Но это может быть применимо для MSIE 8.

Кроме того, вы можете использовать метатег X-UA-Compatible или заголовок и посмотреть, можно ли решить эту проблему, прибегнув к режиму совместимости (я бы лично использовал это в качестве крайней меры, и вместо этого попытался бы написать JavaScript, который не заставляет IE8 вести себя как описано).

PS: Чтобы IE8 не требовал режима совместимости, воспользуйтесь службами W3C page validator и протестируйте страницу в другом браузере, совместимом со стандартами, например Firefox 3 (не забудьте использовать Firebug и расширения панели инструментов веб-разработки, если вы используете FF3).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...