关键词: IOS-WebRTC BUG处理, 问题图片导入,本地运行两个nodejs
一IOS-WebRTC BUG处理
1 把图片导进去
a.加载问题图片的函数如下:
1) function loadQuestionImg(url) {
2) params.zoomImgUrl = url;
3) params.zoomImgUrl =params.zoomImgUrl + "?t=" + new Date().getTime();
4) convertImgToBase64(params.zoomImgUrl,function(base64Img) {
5) $("#qustionImg").attr("src",base64Img);
6) })
7) }
b.我想到了一个办法,就是把网址:
https://localhost:9005/demos/index.html?t=300#roomid=1912#imgUrl=http://st.dz101.com:8003/uploadfiles/2016/11/1478143874gHeUlH.jpeg
中的#,全部替换为&,这样,和以前的一模一样。
search = search.replace(/#/g,"&"); //替换所有#
search = search.replace('&','#'); //仅替换一个#(最前面的)
2 看下原版,没换身份之前,是怎么获取问题图片的
追踪一下:
网址为:
https://st.dz101.com:9003/demos/index.html?roomid=1912&t=300&imgUrl=http://st.dz101.com:8003/uploadfiles/2016/11/1478143874gHeUlH.jpeg
经过如下函数:
(function() {
var params = {},
r = /([^&=]+)=?([^&]*)/g;
function d(s) {
returndecodeURIComponent(s.replace(/\+/g, ' '));
}
var match, search = window.location.search;
while (match =r.exec(search.substring(1)))
params[d(match[1])] = d(match[2]);
window.params = params;
console.log('params----------------------------------------------------------------------->qhz--->',params);
console.log('window.params----------------------------------------------------------------------->qhz--->',window.params);
})();
输出结果为:
以上自加载函数中,有一个whlile循环,只要不为空,它将一直执行下去。针对给出的网址,这个循环的执行过程如下:
第一次循环:search为
?roomid=1912&t=300&imgUrl=http://st.dz101.com:8003/uploadfiles/2016/11/1478143874gHeUlH.jpeg
r.exec(search.substring(1))的结果为一个数组,如下:
此时:params[d(match[1])]= d(match[2]);这条语句代表:
params[‘roomid’] =1912;
这时,params数组中只有一个元素。循环继续(它是一个字符一个字符向前跳,直到跳到最后,为空,循环条件不成立。还有就是这个循环因为没有大括号,所以只对语句:params[d(match[1])] = d(match[2]);有效)
第二次循环为:先执行这个语句:r = /([^&=]+)=?([^&]*)/g;
把t=300放进去
第三次循环为:先执行这个语句:r = /([^&=]+)=?([^&]*)/g;
把:
imgUrl=http://st.dz101.com:8003/uploadfiles/2016/11/1478143874gHeUlH.jpeg放进去。
注:window.params =params;这一句会可进来几个元素。没有这一句时,如下:
当加上这一句:window.params= params;时,结果如下:
增加了两个元素:imgFilePath和zoomImgUrl.
二、同时在本地运行两个nodejs
方法:只需再打开一个控制台,进入到那个文件夹,运行即可。截图如下:
页面截图如下:
2016年12月18日星期日