关于mui页面跳转(跳转及参数传递)

页面跳转比较简单的一种写法如下,extras中可以传递扩展参数(param),

传值:

mui.openWindow({
url : 'mspck.jsp',
id : 'mspck.jsp',
extras : {
openid : openid
}
});

取值:

var self = plus.webview.currentWebview();

var name = self.name;

var version = self.version;

但上述写法我无法获取到参数,网上有提到如果目标页面是预加载的页面,则extras所传参数无效,所以我后来看了下可能是目标页面的init()函数使参数无效,期间一个疑问是,我取值的时候,所遇到的问题是plus是未定义的,不知道跟上述的猜测原因是否同属一个问题

故而采用URL传递参数,写法如下:

mui.openWindow({
url : 'mspck.jsp?openid='+ openid,
id : 'mspck.jsp'
});

获取参数的方式如下:

//获取url中的targetId参数
var targetId = getUrlParam('targetId');

// 获取url中的参数的函数
function getUrlParam (name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if (r!= null) {
return unescape(r[2]);
}else{
return null;
}
}

PS:对于跳转来说,有两种方式

方式一:用类似mui.openWindow的方式在页面上直接打开另一页面

方式二:通过Struts的配置跳转,Struts中可配置方法成功返回后的跳转至指定页面

对于上述两种方式的跳转,浏览器中的URL会呈现出两种状态(当然,前提是类似方式一那样的全路径跳转,这时URL指向的就是页面所在的工作空间)

方式一对应的URL依然是全路径,指向页面所在的工作空间,如:

http://IP:8090/order/modules/order/mspxd.jsp?openid=213456

方式二对应的URL就会变为运行方法的调用,如:

http://IP:端口/orderAction/mspOrderingQuery2.action?openid=23451&ddbh=7231

¥¥¥¥¥¥¥下面重点来了:&&&&&&&

如果使用mui.openWindow的方式来打开页面,要注意URL属性的编写,否则对于方式二的URL,是找不到所要跳转的页面,具体写法如下:

mui.openWindow({
url : '../order/modules/order/mspxd.jsp?openid=234546',
id : 'mspxd.jsp'
});

说明:将指定页面所在工作空间路径写完整,然后重点是开头的省略号,“..”别小看这几个点,能不能跳转成功就靠他们了,这几个点的意思是URL的路径回退一步(两步?),然后URL就剩下了IP和端口的部分,这时候就明白了吧,工作空间路径就是补全了指定页面的路径,这时候也就回到了方式一的全路径URL的跳转方式

原文地址:https://www.cnblogs.com/binTke170120/p/6872860.html