Как заставить SweetAlert работать в JavaFx WebView - PullRequest
0 голосов
/ 04 июля 2019

Я пытаюсь заставить SweetAlert работать в JavaFx WebView.

У меня есть веб-приложение, которое использует SweetAlert вместо предупреждения браузера по умолчанию.Все работает нормально при просмотре через обычные браузеры.

Теперь я хочу, чтобы одно и то же веб-приложение работало через JavaFx WebView.

Проблема в том, что диалоговое окно подтверждения SweetAlert не работает вJavaFx WebView.

Это Ajax с кодом SweetAlert:


    $(document).on('click', '#confirmOverage', function(e){
            e.preventDefault();
            $(this).attr("disabled",true);

            var overageID = $(this).attr('overageValue');

            if(overageID !== ""){
                swal({
                    title: "Are You Sure ?",
                    text: "Do you really want to confirm this overage deposit ?",
                    icon: "info",
                    buttons: true,
                    dangerMode: true,
                    closeOnClickOutside: false,
                })
                .then((willDelete) => {
                    if (willDelete) {
                        $.ajax({
                            url: '<?=$fn;?>',
                            method: 'POST',
                            dataType: 'text',
                            data: {
                                oi: overageID
                            },
                            success: function(successResponse){
                                if(successResponse !== "" && successResponse.includes("SUCCESS:") === true){
                                   successResponse = successResponse.replace("SUCCESS: ",""); 

                                    swal({
                                        title: "SUCCESS !",
                                        text: successResponse,
                                        icon: "success",
                                        closeOnClickOutside: false,
                                    });
                                }
                                else{
                                    if(successResponse.includes("SORRY !") === true){
                                        successResponse = successResponse.replace("SORRY !","");
                                    }
                                    else if(successResponse.includes("SORRY!") === true){
                                        successResponse = successResponse.replace("SORRY!","");
                                    }
                                    else if(successResponse.includes("Sorry!") === true){
                                        successResponse = successResponse.replace("Sorry!","");
                                    }
                                    else if(successResponse.includes("Sorry,") === true){
                                        successResponse = successResponse.replace("Sorry,","");
                                    }
                                    swal({
                                        title: "SORRY !",
                                        text: successResponse,
                                        icon: "error",
                                        closeOnClickOutside: false,
                                    });
                                }
                            }
                        });                  
                    }
                    else{
                        $(this).attr("disabled",false);
                    }
                });
            }
            else{
                swal({
                    title: "SORRY !",
                    text: "The Overage Parameter is required. Please Check and try again. Thank you",
                    icon: "error",
                    closeOnClickOutside: false,
                }); 
                $(this).attr("disabled",false);
            }
        })

Это код JavaFx WebView:

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.VBox;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;



public class main extends Application{

    String url = "https://www.url.com/index.php";

    public static void main(String[] args){
        Application.launch(args);
    }


    @Override
    public void start(Stage stage) throws Exception{

        WebView myWebView = new WebView();
        WebEngine engine = myWebView.getEngine();        
        engine.load(url);
        engine.getConfirmHandler();

        VBox root = new VBox();
        root.getChildren().addAll(myWebView);

        Scene scene = new Scene(root);
        stage.setTitle("SCHOOL MANAGEMENT SYSTEM");
        stage.setScene(scene);
        stage.show();

    }

}

Пожалуйста, что не так и как правильно это сделать?

Любая помощь приветствуется.Спасибо

1 Ответ

0 голосов
/ 05 июля 2019

Я наконец-то решил проблему.

Я думаю, что проблема не в JavaFx WebView.

Я изменил обещание SweetAlert:

.then((willDelete) => {
     if (willDelete) {
        ......
        ......
     }
 });

К этому

.then(function(proceed) {
    if (proceed) {
      .......
      .......
    }
 });

Это решило проблему.

Это может помочь кому-то в будущем

...