Как напечатать несколько файлов с помощью js и asp.net - PullRequest
0 голосов
/ 13 сентября 2011

Мне пришлось запустить какой-нибудь серверный код, чтобы открыть несколько файлов через javascript, что-то вроде этого:

Предположим, что r просто читатель с некоторыми данными:

If r IsNot Nothing Then
    Dim sb As New StringBuilder()
    Do While r.Read()
        'added below to replace \\ with http://
        strURL = Replace(CType(r("AttachmentLink"), String), "\\myServer\MyFolder\MyPath", "http://MyFolder/MyPath", , , CompareMethod.Text)
        'added below to replace \ with /
        strURL = Replace(strURL, "\", "/")
        sb.AppendLine("window.open('" & strURL & "', '_blank', 'menubar=no');")
    Loop
    ClientScript.RegisterStartupScript(Me.GetType(), "popup", sb.ToString(), True)
End If

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

Поэтому я попытался просто взять то, что у меня было выше, и немного изменить:

Do While r.Read()
    'added below to replace \\ with http://
    strURL = Replace(CType(r("AttachmentLink"), String), "\\myServer\MyFolder\MyPath", "http://MyFolder/MyPath", , , CompareMethod.Text)
    'added below to replace \ with /
    strURL = Replace(strURL, "\", "/")
    sb.AppendLine("var oWindow = window.open('" & strURL & "', '_blank', 'menubar=no');")
    sb.AppendLine("oWindow.print();")
    sb.AppendLine("oWindow.close();")
Loop
ClientScript.RegisterStartupScript(Me.GetType(), "popup", sb.ToString(), True)

Это, конечно, не работает, без ошибок, но ничего не появляется.Я надеялся открыть каждое окно и всплывающее диалоговое окно печати из javascript ...

Есть идеи?

1 Ответ

0 голосов
/ 13 сентября 2011

Из-за соображений безопасности JavaScript в браузере вам не разрешено печатать дочернее окно.

Что вы можете сделать, это добавить скрипт загрузки на те страницы, которые вы хотите распечатать, который вместо этого начнет печать из этого дочернего окна.

Проверьте этот ответ , который показывает немного иной подход в том смысле, что:

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