Закрыть всплывающее окно Dynamsoft Web Twain

Я пытаюсь внедрить Dynamsoft Web Twain в свой проект Angular. Но во всплывающем окне установки нет кнопки закрытия. Как добавить кнопку закрытия во всплывающее окно?

Моя версия Angular 13.3. Версия Dynamsoft Webtwain: 17.2.4 Скриншот всплывающего окна

Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
2
0
44
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Есть три способа добавить кнопку закрытия в dynamsoft.webtwain.install.js:

  • Измените значение closeButton на true в _this.DWT.ShowMessage(ObjString.join(''), { width: promptDlgWidth, headerStyle: 1, closeButton: true });. По умолчанию это false.

  • Добавьте элемент кнопки на основе текущего кода.

    Например, добавить

    ObjString.push('<div><a id = "dwt-btn-close" 
    onclick = "Dynamsoft.onClose()"><div class = "dynamsoft-dwt-dlg- 
    button">Close</div></a></div>');
    

    ниже

    ObjString.push(' onclick = "Dynamsoft.DCP_DWT_onclickInstallButton()"> 
    <div class = "dynamsoft-dwt-dlg-button">Download</div></a></div>');
    

    Затем добавьте функцию нажатия кнопки

    Dynamsoft.onClose = function() {
      document.getElementsByClassName('dynamsoft-dialog') 
    [0].style.display = 'none';
    }
    

    над

    Dynamsoft.DCP_DWT_onclickInstallButton = function ()
    

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

    Вы можете нажать кнопку закрытия, чтобы закрыть диалоговое окно. Из-за z-index элементы HTML во всплывающем диалоговом окне недоступны для выбора. Хитрый способ — изменить z-index после скрытия всплывающего диалогового окна:

    let divs = document.getElementsByTagName('div');
      for (let i = 0; i < divs.length; i++) {
        divs[i].style.zIndex = -1;
      }
    
  • Не звонить _this.DWT.ShowMessage(ObjString.join(''), { width: promptDlgWidth, headerStyle: 1, closeButton: true });. Вместо этого используйте jQuery для создания собственного диалогового окна. Например:

    <!doctype html>
    <html lang = "en">
    <head>
    <meta charset = "utf-8">
    <meta name = "viewport" content = "width=device-width, initial-scale=1">
    <title>jQuery UI Dialog - Default functionality</title>
    <link rel = "stylesheet" href = "//code.jquery.com/ui/1.13.1/themes/base/jquery-ui.css">
    <link rel = "stylesheet" href = "/resources/demos/style.css">
    <script src = "https://code.jquery.com/jquery-3.6.0.js"></script>
    <script src = "https://code.jquery.com/ui/1.13.1/jquery-ui.js"> 
    </script>
    <script>
    $( function() {
      $( "#dialog" ).dialog();
    } );
    </script>
    </head>
    <body>
    <div id = "dialog" title = "Basic dialog">
    <p>This is the default dialog which is useful for displaying 
    information. The dialog window can be moved, resized and closed with 
    the &apos;x&apos; icon.</p>
    </div>
    </body>
    </html>
    

Спасибо @yushulx. Теперь можно закрыть диалог. Но не удалось выбрать какие-либо поля после закрытия всплывающего окна. При проверке страницы класс отображается как «dynamsoft-backdrop». Поэтому, хотя диалоговое окно Dynamsoft закрыто, я думаю, что класс стиля все еще присутствует там, что и Dynamsoft. Как решить эту проблему?

C J 22.03.2022 07:21

@CJ ты прав. Это вызвано z-index. Если вы не хотите добавлять пользовательскую кнопку, вам просто нужно изменить логическое значение closeButton в _this.DWT.ShowMessage(ObjString.join(''), { width: promptDlgWidth, headerStyle: 1, closeButton: true });

yushulx 22.03.2022 07:57

Можно ли включить эту функцию без изменения dynamsoft.webtwain.install.js?

C J 24.03.2022 14:45

@CJ Вы можете переопределить функцию, повторно объявив ее на своей html-странице.

yushulx 25.03.2022 01:49

Другие вопросы по теме