其他标签中的异步操作

问题描述

我正在努力解决以下问题:

我有一个带有按钮的网站,该按钮应该通过whatsapp网络通过whatsapp发送消息

<div class="btn-group" id="messages">
  <button type="button" class="btn btn-primary btn-xs" onclick="sendWhatsapp('GVALRQ')">
    <i class="fa fa-at"></i>&nbsp;<i class="fa fa-users"></i>&nbsp;Welcome!
  </button>
  <a id="messageAnchor" href="" target="_blank"></a>
</div>

onclick事件调用以下函数:

function sendWhatsapp(messageType) {
  let $div = $('<div>');
  $div.load('https://example.com/messagerepository.html #'+messageType,function(){
    let message = $(this).contents().val();
    $('#messageAnchor').attr("href","https://web.whatsapp.com/send?phone=123456&text="+(message));
    $('#messageAnchor')[0].click();
    if (confirm('Were you able to send the message by Whatsapp?')) {
      // do something in case of success
      return true;
    }
    // do something in case of failure
    return false;
  });
}

请不要专注于whatsapp api的工作原理-它确实会发送消息。它打开网络whatsapp界面,该界面预填充了要发送到指定电话号码的消息字段。用户可能必须在编辑消息后简单地按“发送”。 (我知道有更好的/自动化的解决方案,但是我需要使用这种工作方式)。

我的问题如下:理想情况下,我将让新的whatapp选项卡告诉我(调用选项卡,该按钮位于其中)消息已成功发送并采取相应的措施。我无法执行此操作,因为web.whatsapp.com API中似乎没有回调函数。因此,我要做的是停止脚本,直到用户在新打开的选项卡中完成了消息发送,然后返回到调用选项卡,并手动确认消息已成功发送(或未发送)。这样做的问题是在confirm()之后调用了click(),因此浏览器(Chrome)注意到我不在脚本运行的选项卡上,并抛出以下错误:

A window.confirm() dialog generated by this page was suppressed because this page is not the active tab of the front window. Please make sure your dialogs are triggered by user interactions to avoid this situation. https://www.chromestatus.com/feature/5140698722467840

任何帮助都会以降序或可取的方式受到赞赏:

  • (正在做梦)从web.whatsapp api中获取回调...好吧
  • 从运行脚本的选项卡上导航时,请保留脚本,直到用户回到该选项卡为止。
  • 诱使浏览器认为用户仍在选项卡上,启动confirm()并导航至whatsapp。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...