Javascript 在iOS6上从摄像头上传图像的HTML/JS
我有一段话:Javascript 在iOS6上从摄像头上传图像的HTML/JS,javascript,html,ios6,Javascript,Html,Ios6,我有一段话: <script> var reader = new FileReader(); reader.onload = (function(theFile) { return function(e) { // Render thumbnail. var span = document.createElement('span');
<script>
var reader = new FileReader();
reader.onload = (function(theFile) {
return function(e) {
// Render thumbnail.
var span = document.createElement('span');
span.innerHTML = ['<div id="wrap"><img id="image" class="thumb draggable" src="', e.target.result,
'" title="', escape(theFile.name), '" draggable="true" /></div>'].join('');
document.getElementById('list').insertBefore(span, null);
};
})(f);
// Read in the image file as a data URL.
reader.readAsDataURL(f);
var reader=new FileReader();
reader.onload=(函数(文件){
返回函数(e){
//渲染缩略图。
var span=document.createElement('span');
span.innerHTML=['').join('');
document.getElementById('list').insertBefore(span,null);
};
})(f) );
//作为数据URL读入图像文件。
reader.readAsDataURL(f);
我正在iOS的移动应用程序中使用它,它可以从摄像头捕获数据并在div中显示预览。除了第一次在未经许可的情况下在新设备上加载应用程序以访问照片外,一切正常(第一次尝试拍照时会提示)
这里的问题是,当我调用reader.readAsDataURL(f)
在用户批准访问用户照片之前,reader.onload
不会触发
是否有任何供用户批准的侦听器,或者是否有一种方法可以提示用户在页面加载时访问摄像头
谢谢我认为这里的问题有两个方面 首先,我假设我们正在侦听
标记上的某种onchange
事件,该事件调用相机/用户照片,然后调用读取文件的代码。如果没有,我们肯定应该这样做,因为这将等待适当的事件
最后,我们将f
作为一个参数传递给匿名函数,该函数在某种代码初始阶段返回另一个匿名函数,该函数将成为实际的事件侦听器。问题不在于调用reader.readAsDataURL(f)处的文件
看到您首先在reader.onload
中使用f
作为参数
看到f
的作用域高于reader.onload
事件,我们应该能够执行以下操作:
reader.onload = function(e) {
// Render thumbnail.
var span = document.createElement('span');
span.innerHTML =
['<div id="wrap"><img id="image" class="thumb draggable" src="',
e.target.result, '" title="', escape(f.name), // we use f, not theFile
'" draggable="true" /></div>'].join('');
document.getElementById('list').insertBefore(span, null);
};
reader.onload=函数(e){
//渲染缩略图。
var span=document.createElement('span');
span.innerHTML=
['')。加入('');
document.getElementById('list').insertBefore(span,null);
};
在上面,我们消除了我们的函数inception,只引用已经在范围内的f
。除非我们有权限,否则这个函数也不会执行,所以这应该可以解决您最初的用例问题