double
double
  • 发布:2015-12-15 10:47
  • 更新:2015-12-16 10:10
  • 阅读:7649

使用mui.openWindow无法打开子页面

分类:MUI

问题:
点击登录按钮,执行mui.openWindow想打开子页面,但执行时报错:Uncaught ReferenceError: plus is not defined,等待加载的图标一直在转,无法跳转到新页面,但按返回键取消加载后再点击登录按钮,不报错可以进入新页面。
改用plus.webview.create("main.html").show()则没有问题,直接进入子页面。
初学者,请教一下为什么mui.openWindow不行??
代码:

            document.getElementById("btn_login").addEventListener('tap',function(){  
                console.log("enter event listener");  
                mui.openWindow({  
                    url:'main.html',  
                    id:'main.html',  
                    waiting:  
                    {  
                        autoshow:true,  
                        title:'loading....'  
                    }  
                });  
//              openWindow会报 Uncaught ReferenceError: plus is not defined错误  
//              plus.webview.create("main.html").show();  
                console.log("exit event listener");  
            }); 
2015-12-15 10:47 负责人:无 分享
已邀请:
igdxnui

igdxnui

请把执行代码放在下面的代码中执行
mui.plusReady(function(){
//在此写要执行的方法
});

  • double (作者)

    还是不行,将上面的代码放在mui.plusReady(function(){...})里头跟之前还是一样的情况

    2015-12-15 11:08

  • maq

    虽然写在 plusReady 里面比较规范,但具体这段代码是不必的,回调函数执行的时候,plus 一定已经 ready 了。

    2015-12-15 15:37

maq

maq

怎么感觉像是 mui.js 的问题呢……

检查一下 mui.js 文件以及引入方式有没有什么问题。

不行的话,给 mui.openWindow() 加上 try/catch,看看问题出在哪行代码上。

barice

barice

主要两个问题

  1. main.html 的路径是否正确
  2. 放到
    mui.plusReady(function(){  
    //你的 mui 或是 plus 调用代码  
    });
double

double (作者)

谢谢各位,问题解决了,下面几种方式都可以实现跳转:

//1  
if(window.plus)  
{  
      plus.webview.create('main.html').show();  
}  
//2  
if(window.plus)  
{  
      mui.openWindow({  
            url:'main.html',  
            id:'main.html'  
      });  
}  
//3、4  
mui.plusReady(function(){  
      //plus.webview.create('main.html').show();或者。。同上  
      mui.openWindow({  
            url:'main.html',  
            id:'main.html'  
      });  
});

这几种方式之前试过不行,但今天可以了,知其然不知所以然。。

该问题目前已经被锁定, 无法添加新回复