当前位置: 代码迷 >> 综合 >> 第35篇 IOS-WebRTC BUG处理(三)之问题图片导入及本地运行两个nodejs
  详细解决方案

第35篇 IOS-WebRTC BUG处理(三)之问题图片导入及本地运行两个nodejs

热度:73   发布时间:2024-01-12 12:22:30.0

关键词: 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日星期日