Я использую window.open для заполнения нового окна различным содержимым. В основном отчеты и сохраненный HTML из автоматизированных процессов.
Я заметил очень непоследовательное поведение Chrome в отношении window.open ().
Некоторые из моих вызовов создают новую вкладку (предпочтительное поведение), а некоторые вызывают всплывающие окна.
var w = window.open('','_new');
w.document.write(page_content);
page_content - это просто обычный HTML из вызовов AJAX. Отчеты содержат некоторую информацию в заголовке, такую как заголовок, значок и некоторые таблицы стилей.
В IE9 код действительно вызывает новую вкладку вместо всплывающего окна, в то время как Chrome категорически отказывается отображать рассматриваемый контент на новой вкладке. Поскольку содержание представляет собой конфиденциальные бизнес-данные, я не могу размещать его здесь. Я отвечу на вопросы, если смогу.
Я знаю, что некоторые люди скажут, что это поведение оставлено на усмотрение пользователя, но это внутренняя бизнес-платформа. У нас нет времени обучать всех пользователей тому, как управлять всплывающими окнами, и нам просто нужно, чтобы это было на новой вкладке. Черт возьми, даже новое окно было бы предпочтительнее всплывающего окна, поскольку вы не можете закрепить всплывающее окно в Chrome. Не говоря уже о том, что ни один код блокировки всплывающих окон не повлияет на это.
Цените любое понимание.
window.open('data:text/html,' + escape(page_content))
? РЕДАКТИРОВАТЬ: только что попробовал, нет. - person ephemient   schedule 17.08.2012