第57篇一对多实现之私有白板向老师端传图片数据(四)新建一个iframe及成功获取私有白板数据 周日
2017-02-27 14:16
393 查看
关键词:私有白板向老师端传图片数据,
新建一个iframe,
成功获取私有白板数据
一、私有白板向老师端传图片数据
1.1 服务器运行平台
老师端:https://123.57.206.36:9100/demos/index.html?roomid=888
学生一:
https://123.57.206.36:9100/demos/student.html?studentId=1001&userAvatar=http://123.57.206.36:8003/uploadfiles/2016/11/1479740395ZMJkiF.jpg#888
学生二:
https://123.57.206.36:9100/demos/student.html?studentId=1002&userAvatar=http://123.57.206.36:8003/uploadfiles/2016/11/1480494624FDjMGetutor.png#888
学生三:
https://123.57.206.36:9100/demos/student.html?studentId=1003&userAvatar=http://123.57.206.36:8003/uploadfiles/2016/11/1480475198N2F0kntutor.png#888
1.2学生端私有白板dataURL传到老师端
现在学生端共享白板能往老师端传图片数据,而学生端私有白板还不知道怎么传,想想办法;思路是:区分清楚两个iframe就可以了应该。
1)获取私有白板上的dataURL
代码完成,如下:全在canvas-designer-widget.js
a.)修改一:另外定义一个iframe
designer.iframe_private = null;
b.)修改二:定义函数designer.appendPriTo
designer.appendPriTo = function(parentNode) {
designer.iframe_private = document.createElement('iframe');
designer.iframe_private.src = designer.widgetHtmlPriURL +'?widgetPriJsURL=' + designer.widgetJsPriURL + '&tools=' +JSON.stringify(tools) + '&selectedIcon=' + selectedIcon;
designer.iframe_private.style.width = '100%';
designer.iframe_private.style.height = '100%';
designer.iframe_private.style.border = 0;
//window.removeEventListener('message', onMessage);
//window.addEventListener('message', onMessage, false);
parentNode.appendChild(designer.iframe_private);
};
c.)修改三---------把获取图片dataURL的函数写成私有的iframe
//用于传图像id--复制
designer.saveImgB = function(format,imgId,callback) {
saveImgListenerB = callback;
if (!designer.iframe_private) return;
designer.postMessagePrivate({
saveImgB: true,
format: format,
imgId:imgId
});
};
d.)修改四---------传消息时,也用私有的iframe
designer.postMessagePrivate = function(message) {
if (!designer.iframe_private) return;
message.uid = designer.uid;
designer.iframe_private.contentWindow.postMessage(message, '*');
};
1.3 专门写一个函数用于学生端私有白板向老师端传图片
写成功了,如下:
1)代码复制一---------canvas-designer-widget.js中
varsaveImgListenerPrivate = function(dataUrl,imgId){};
注:写一个监听函数
2)代码复制二---------canvas-designer-widget.js中
//改3个
if(!!event.data.imgDataURLPrivate){
saveImgListenerPrivate(event.data.imgDataURLPrivate,event.data.imgId);
}
注:调用监听函数
3)代码复制三---------canvas-designer-widget.js中
//用于传图像id--复制--private--3
designer.saveImgPrivate = function(format,imgId,callback) {
saveImgListenerPrivate = callback;
if (!designer.iframe_private) return;
designer.postMessagePrivate({
saveImgPrivate: true,
format: format,
imgId:imgId
});
};
注:获取学生端dataURL,注意用的是私有的iframe及传消息方式。
4)代码复制四---------widget.js中
//改2个
if (uid || (uid = event.data.uid),event.data.saveImgPrivate) {
var dataURL =context.ca
4000
nvas.toDataURL(event.data.format, 1);
return voidwindow.parent.postMessagePrivate({
imgDataURLPrivate: dataURL,
imgId:event.data.imgId,
uid: uid
}, "*")
}
注:这个应该是传递。
5)代码复制五--------- widget.private.min.js中
//这个地方用私有白板获取dataURL时,也必须有
if(uid|| (uid = event.data.uid), event.data.saveImgPrivate){
var dataURL =context.canvas.toDataURL(event.data.format, 1);
returnvoid window.parent.postMessage({
imgDataURLPrivate:dataURL,
imgId:event.data.imgId,
uid:uid
},"*")
}
注:这里用的传消息方式是postMessage而不是postMessagePrivate,因为不认识postMessagePrivate,由此推想那个postMessagePrivate没什么用。
2017年2月26日星期日
新建一个iframe,
成功获取私有白板数据
一、私有白板向老师端传图片数据
1.1 服务器运行平台
老师端:https://123.57.206.36:9100/demos/index.html?roomid=888
学生一:
https://123.57.206.36:9100/demos/student.html?studentId=1001&userAvatar=http://123.57.206.36:8003/uploadfiles/2016/11/1479740395ZMJkiF.jpg#888
学生二:
https://123.57.206.36:9100/demos/student.html?studentId=1002&userAvatar=http://123.57.206.36:8003/uploadfiles/2016/11/1480494624FDjMGetutor.png#888
学生三:
https://123.57.206.36:9100/demos/student.html?studentId=1003&userAvatar=http://123.57.206.36:8003/uploadfiles/2016/11/1480475198N2F0kntutor.png#888
1.2学生端私有白板dataURL传到老师端
现在学生端共享白板能往老师端传图片数据,而学生端私有白板还不知道怎么传,想想办法;思路是:区分清楚两个iframe就可以了应该。
1)获取私有白板上的dataURL
代码完成,如下:全在canvas-designer-widget.js
a.)修改一:另外定义一个iframe
designer.iframe_private = null;
b.)修改二:定义函数designer.appendPriTo
designer.appendPriTo = function(parentNode) {
designer.iframe_private = document.createElement('iframe');
designer.iframe_private.src = designer.widgetHtmlPriURL +'?widgetPriJsURL=' + designer.widgetJsPriURL + '&tools=' +JSON.stringify(tools) + '&selectedIcon=' + selectedIcon;
designer.iframe_private.style.width = '100%';
designer.iframe_private.style.height = '100%';
designer.iframe_private.style.border = 0;
//window.removeEventListener('message', onMessage);
//window.addEventListener('message', onMessage, false);
parentNode.appendChild(designer.iframe_private);
};
c.)修改三---------把获取图片dataURL的函数写成私有的iframe
//用于传图像id--复制
designer.saveImgB = function(format,imgId,callback) {
saveImgListenerB = callback;
if (!designer.iframe_private) return;
designer.postMessagePrivate({
saveImgB: true,
format: format,
imgId:imgId
});
};
d.)修改四---------传消息时,也用私有的iframe
designer.postMessagePrivate = function(message) {
if (!designer.iframe_private) return;
message.uid = designer.uid;
designer.iframe_private.contentWindow.postMessage(message, '*');
};
1.3 专门写一个函数用于学生端私有白板向老师端传图片
写成功了,如下:
1)代码复制一---------canvas-designer-widget.js中
varsaveImgListenerPrivate = function(dataUrl,imgId){};
注:写一个监听函数
2)代码复制二---------canvas-designer-widget.js中
//改3个
if(!!event.data.imgDataURLPrivate){
saveImgListenerPrivate(event.data.imgDataURLPrivate,event.data.imgId);
}
注:调用监听函数
3)代码复制三---------canvas-designer-widget.js中
//用于传图像id--复制--private--3
designer.saveImgPrivate = function(format,imgId,callback) {
saveImgListenerPrivate = callback;
if (!designer.iframe_private) return;
designer.postMessagePrivate({
saveImgPrivate: true,
format: format,
imgId:imgId
});
};
注:获取学生端dataURL,注意用的是私有的iframe及传消息方式。
4)代码复制四---------widget.js中
//改2个
if (uid || (uid = event.data.uid),event.data.saveImgPrivate) {
var dataURL =context.ca
4000
nvas.toDataURL(event.data.format, 1);
return voidwindow.parent.postMessagePrivate({
imgDataURLPrivate: dataURL,
imgId:event.data.imgId,
uid: uid
}, "*")
}
注:这个应该是传递。
5)代码复制五--------- widget.private.min.js中
//这个地方用私有白板获取dataURL时,也必须有
if(uid|| (uid = event.data.uid), event.data.saveImgPrivate){
var dataURL =context.canvas.toDataURL(event.data.format, 1);
returnvoid window.parent.postMessage({
imgDataURLPrivate:dataURL,
imgId:event.data.imgId,
uid:uid
},"*")
}
注:这里用的传消息方式是postMessage而不是postMessagePrivate,因为不认识postMessagePrivate,由此推想那个postMessagePrivate没什么用。
2017年2月26日星期日
相关文章推荐
- 第55篇一对多实现之私有白板向老师端传图片数据(二)及array_reduce
- 第56篇一对多实现之私有白板向老师端传图片数据(三)仿制传图片dataURL及array_replace及array_replace_recursive
- 我们的应用或多或少都会从网络获取图片数据然后进行显示,下面就将实现一个这样的例子,获取网络中的图片!
- python实现获取一个表数据插入另外一个库中的表
- 网上一堆代码,没有一个真正实现curl传图片成功过的,这儿,我来个成功的,超级简单,扩展性强【广告一下】
- 利用strstr与atoi的结合实现一个C语言获取文件中数据的工具
- 【poi】用POI新建一个xlsx文件【或者说将数据存入到xlsx中】/【将数据从xlsx中获取到项目中】
- 用Angular实时获取本地Localstorage数据,实现一个模拟后台数据登入的效果
- Project——从网络获取数据,实现图片查看器
- 在链表中获取一个数据、查找操作C语言实现
- 简单获取input file 选中的图片,并在一个div的img里面赋值src实现预览图片
- 【原创】等待窗口,载入数据完成后自动关闭。跨一个IFRAME , ExtJs实现。
- 想要实现pdf文件5页数据,每页都有一个图片,怎么实现?
- 关于JQuery 中$.ajax函数利用jsonp实现Ajax跨域请求ASP.NET的WebService成功获取数据的案例
- 基于iframe实现ajax跨域请求 获取网页中ajax数据
- object-c实现获取一个图片像素点RGB值的代码
- 网络获取图片数据后 利用viewpager实现弹簧效果
- 成功用jdbc 实现从oracle 读取出一个时间间隔的数据
- 关于JQuery 中$.ajax函数利用jsonp实现Ajax跨域请求ASP.NET的WebService成功获取数据的案例
- 实现一个线程安全的内存池(使用线程私有数据机制TSD来实现)