对话框 JavaScript 回调页面跳转问题

如题,当我尝试在 JavaScript 触发对话框里的确认回调执行一个页面跳转命令的时候:

mdui.confirm('你想要打开百度吗?', '打开百度',
  function(){
    alert("即将打开百度");
    window.location.href='http://www.baidu.com';
  },
  function(){
    alert("已取消");
  }
);

但是无论我怎么尝试,我都发现不能执行跳转,请问这是什么问题呢?

共 4 个回答
举头望涵涵,低头思第一。 https://www.dffzmxj.com

经验,{history:false}可解,而我前回答dialog若无之则不可解。

const jump = () => window.location.href="new-webpage";
mdui.confirm('Attention','You have been noticed by an AD provider.',jump,null,{history:true});//Won't work.
mdui.confirm('Attention','You have been noticed by an AD provider.',jump,null,{history:false});//Will work.


是不是题主是用在微信上


我知道的是微信日常会这样bug,必须带个参数,随便数字就行

已经解决啦,这样写就行了

但是还不知道是什么原理

mdui.confirm('你想要打开百度吗?', '打开百度',
  function(){
    alert("即将打开百度");
    setTimeout(()=>{
 window.location.href = 'https://www.baidu.com/';
}, 0)
  },
  function(){
    alert("已取消");
  }
);


举头望涵涵,低头思第一。 https://www.dffzmxj.com

试试用 mdui.dialog()

mdui.dialog({
    title:'You will open Baidu.',
    content:'Are you sure?',
    buttons:[
        {
            text:'OK',
            onClick:()=>window.location.href="https://www.baidu.com"
        },
        {
            text:'Cancel',
            onClick:()=>mdui.alert("Cancelled!")
        }
    ]
});