如何让 SweetAlert 在 JavaFx WebView 中工作
How to make SweetAlert work in JavaFx WebView
我正在尝试让 SweetAlert 在 JavaFx WebView 中工作。
我有一个使用 SweetAlert 代替默认浏览器警报的 Web 应用程序。通过传统浏览器查看一切正常。
现在我想通过 JavaFx WebView 拥有相同的 Web 应用程序 运行。
问题是:SweetAlert 确认对话框在 JavaFx WebView 中不工作。
这是带有 SweetAlert 代码的 Ajax:
$(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();
}
}
请问哪里出了问题,正确的做法是什么?
感谢任何帮助。谢谢
终于解决了问题
我认为问题不在于 JavaFx WebView。
我更改了 SweetAlert 承诺调用:
.then((willDelete) => {
if (willDelete) {
......
......
}
});
致此
.then(function(proceed) {
if (proceed) {
.......
.......
}
});
问题解决了。
这可能对以后的人有帮助
我正在尝试让 SweetAlert 在 JavaFx WebView 中工作。
我有一个使用 SweetAlert 代替默认浏览器警报的 Web 应用程序。通过传统浏览器查看一切正常。
现在我想通过 JavaFx WebView 拥有相同的 Web 应用程序 运行。
问题是:SweetAlert 确认对话框在 JavaFx WebView 中不工作。
这是带有 SweetAlert 代码的 Ajax:
$(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();
}
}
请问哪里出了问题,正确的做法是什么?
感谢任何帮助。谢谢
终于解决了问题
我认为问题不在于 JavaFx WebView。
我更改了 SweetAlert 承诺调用:
.then((willDelete) => {
if (willDelete) {
......
......
}
});
致此
.then(function(proceed) {
if (proceed) {
.......
.......
}
});
问题解决了。
这可能对以后的人有帮助