2013-09-20 4 views
0

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

Сценарий Я использую, чтобы сделать это:

string theScript= "<script>window.open('" + fileLocation + "','_blank','height=400,width=400,scrollbars=Yes,resizable=Yes')</script>"; 
ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "blah", theScript, false); 

Есть ли способ, чтобы решить ее? Заранее спасибо.

+0

Вы пытались написать функцию и просто назвать ее? "openNewWindow (fileLocation)" – Mennan

+0

@Mennan, это не имеет значения – epascarello

ответ

1

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

Как решить?

  • У людей отключить блокировщик всплывающих окон для вашего домена.
  • Или открыть всплывающее в клиенте и есть сервер перенаправляет его в нужное место
+0

да! popup blocker был виновником :) спасибо – konxie

+0

firefox (используя версию 16) загружает файл вместо того, чтобы показывать новое окно. Файл написан с использованием: Байт [] buffer = client.DownloadData (путь); if (buffer! = Null) { Response.ContentType = "application/pdf"; // использование только файлов PDF Response.AddHeader («длина содержимого», buffer.Length.ToString()); Response.BinaryWrite (буфер); } – konxie

0

Вы можете обнаружить, не заблокирован ли всплывающее окно или нет, и дать пользователю возможность вносить изменения в его браузере:

var pop = window.open("about:blank", "alert_window", "height=150,width=150"); 

// Detect pop blocker 
setTimeout(function() { 
if(!pop || pop.closed || pop.closed == "undefined" || pop == "undefined" || parseInt(pop.innerWidth) == 0 || pop.document.documentElement.clientWidth != 150 || pop.document.documentElement.clientHeight != 150){ 
pop && pop.close(); 
alert("Popups must be enabled."); 
}else{ 
alert("Popups is enabled."); 
pop && pop.close(); 
}}, 1000); 
+0

спасибо! Обязательно попробуйте этот фрагмент :) – konxie

Смежные вопросы