在 Javascript 中运行函数后成功或错误 toast

Posted

技术标签:

【中文标题】在 Javascript 中运行函数后成功或错误 toast【英文标题】:Success or error toast after running function in Javascript 【发布时间】:2020-07-20 21:46:13 【问题描述】:

我有两个如下所示的函数:

function functionOne(par1, par2, par3) 
// this functions patches using an api, re-usable


function functionTwo(par2) 
functionOne(par1, par2, par3);
functionOne(par1, par2, par3);
functionOne(par1, par2, par3);
functionOne(par1, par2, par3);

这按预期工作,但如果用户按下按钮并且 functionTwo 成功运行或出现错误,我想给用户一些反馈。

我发现了这个:https://www.w3schools.com/howto/howto_js_snackbar.asp 这是我想要的,而不是弹出窗口,但是是否可以在成功或错误后显示它,如果可以,如何显示?谢谢!

【问题讨论】:

我不确定你在问什么?您是想知道是否可以集成它(答案是肯定的)还是在寻找有关如何设置它的指导? 我的错;设置指南 【参考方案1】:

看看下面的sn-p:

html 和 CSS 是从 W3C 示例中提取的代码。 JS 函数showToast() 是基于他们的示例,但采用带有默认值的可选参数并将该参数值附加到 toast。

我制作了一个 API (yourApiFuncton()) 调用的小例子来演示使用。

当然,这只是一个基本示例,您可以从那里开始工作以获得更好的东西。

function yourApiFunction()
  
  //Do your api calls, the "error" variable is only set to demonstrate the use of the success/error message
  let error = false;
  
  if(error)
    showToast("Oh no...");
  else
      showToast("Hell yeah");
  


function showToast(content = "Unknown error")  //You can change the default value
  // Get the snackbar DIV
  var x = document.getElementById("snackbar");
  
  //Change the text (not mandatory, but I think you might be willing to do it)
  x.innerHTML = content;

  // Add the "show" class to DIV
  x.className = "show";

  // After 3 seconds, remove the show class from DIV
  setTimeout(function() x.className = x.className.replace("show", ""); , 3000);


//Simulating a call to your API
yourApiFunction();
/* The snackbar - position it at the bottom and in the middle of the screen */
#snackbar 
  visibility: hidden; /* Hidden by default. Visible on click */
  min-width: 250px; /* Set a default minimum width */
  margin-left: -125px; /* Divide value of min-width by 2 */
  background-color: #333; /* Black background color */
  color: #fff; /* White text color */
  text-align: center; /* Centered text */
  border-radius: 2px; /* Rounded borders */
  padding: 16px; /* Padding */
  position: fixed; /* Sit on top of the screen */
  z-index: 1; /* Add a z-index if needed */
  left: 50%; /* Center the snackbar */
  bottom: 30px; /* 30px from the bottom */


/* Show the snackbar when clicking on a button (class added with javascript) */
#snackbar.show 
  visibility: visible; /* Show the snackbar */
  /* Add animation: Take 0.5 seconds to fade in and out the snackbar.
  However, delay the fade out process for 2.5 seconds */
  -webkit-animation: fadein 0.5s, fadeout 0.5s 2.5s;
  animation: fadein 0.5s, fadeout 0.5s 2.5s;


/* Animations to fade the snackbar in and out */
@-webkit-keyframes fadein 
  from bottom: 0; opacity: 0;
  to bottom: 30px; opacity: 1;


@keyframes fadein 
  from bottom: 0; opacity: 0;
  to bottom: 30px; opacity: 1;


@-webkit-keyframes fadeout 
  from bottom: 30px; opacity: 1;
  to bottom: 0; opacity: 0;


@keyframes fadeout 
  from bottom: 30px; opacity: 1;
  to bottom: 0; opacity: 0;
<!-- The actual snackbar -->
<div id="snackbar">Some text some message..</div>

【讨论】:

谢谢!由于我是编程新手,这可能是一个愚蠢的问题,但是程序如何知道是否有错误? 这取决于你的 API 是如何构建的。通常,API 应在成功时返回 200 HTTP 代码,如果需要任何进一步的操作(例如:错误处理),则应返回另一个代码。如果您需要XHR 和HTTP 代码方面的帮助,我邀请您提出另一个问题,因为*** 的原则是:一个问题=一个问题;)另外,如果答案对您有帮助,请accept and upvote it :) 谢谢! 你真的让我免于被解雇(谢谢兄弟)♥【参考方案2】:

尝试使用ToastMaker 库。

$('#successbutton').click(() =>
  ToastMaker("Success", 5000, 
    styles: 
      backgroundColor: 'green'
    
  )
);

$('#failbutton').click(() =>
  ToastMaker("Failure", 5000, 
    styles: 
      backgroundColor: 'red'
    
  )
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<link rel="stylesheet" type="text/css" href="https://unpkg.com/toastmaker/dist/toastmaker.min.css">

<script type="text/javascript" src="https://unpkg.com/toastmaker/dist/toastmaker.min.js"></script>


<button id="successbutton"> Success Toast</button>
<button id="failbutton"> Fail Toast</button>

查看documentation 了解更多示例。

【讨论】:

以上是关于在 Javascript 中运行函数后成功或错误 toast的主要内容,如果未能解决你的问题,请参考以下文章

Azure Web 作业总是失败

JavaScript - 运行函数时声明的变量未定义错误

带有 beta 运行时的 Javascript Azure 函数不返回错误 HTTP 响应的响应正文

构造函数重载类获取链接器错误使用DLL?

如何在 Javascript 类的内部 HTML 中运行 onClick 函数?

javascript:错误处理