我现在正尝试在客户端进行屏幕捕获。因为我使用了“imagegrabscreen()”功能。我发现它只能捕获服务器端的屏幕。我尝试找到新功能,发现只在客户端捕获屏幕,但也将其存储在客户端。我有一些临时的想法,我将在客户端使用屏幕捕获并使用javascript通过批处理调用ftp函数并将这些图像文件传输到中央服务器。 (需要将所有屏幕捕获文件保存在同一位置。)
如果有任何想法请指教。
提前致谢
答案 0 :(得分:1)
使用您描述的任何技术都无法做到这一点,除非您使用JavaScript表示调用一些ActiveX,浏览器插件,Java或您在客户端计算机上安装的一些实际可执行代码。
您需要先在客户端计算机上安装一些内容,这些内容集成到用户的Web浏览器中,并通过JavaScript提供界面。
答案 1 :(得分:0)
如果您对Firefox没问题,请参阅以下答案:take screen shot using only js in firefox extension
<canvas id='my-canvas'></canvas>
<script>
var canvas = document.getElementById('my-canvas');
var ctx = canvas.getContext("2D");
// Draw the window at the top left of canvas, width=100, height=200, white background
ctx.drawWindow(window, 0,0, 100, 200, "rgb(255,255,255)");
// Open another window with the thumbnail as an image
open(canvas.toDataURL("image/png"));
</script>
您的画布将包含窗口的屏幕截图,您可以使用Ajax轻松地将该图像发送到服务器,因为对canvas.toDataUrl()的调用会返回Base64编码的图像。
此功能仅适用于使用Chrome权限https://developer.mozilla.org/en/Drawing_Graphics_with_Canvas#Rendering_Web_Content_Into_A_Canvas
运行的代码这就是原因 http://mxr.mozilla.org/mozilla/source/content/canvas/src/nsCanvasRenderingContext2D.cpp#2352