使用javascript控制客户端的高度和宽度

时间:2015-05-17 14:50:20

标签: javascript controls

这是我的表格

<form action="#" enctype="multipart/form-data" method="post" name="..." id="formPhoto" class="fmp">
        <input type="file" name="pho" id="photo" class="inph" accept="image/*">
        <button type="submit" id="subFormPhoto" class="spp">press here</button>
</form>

这是我的代码JS

<script type="text/javascript">
    var inputPhoto= document.getElementById('photo');
    inputPhoto.onchange=function(){var photo= this.value; photo.onload=function(){alert(this.width+' '+this.height);};};
</script>

我的问题是没有可视化alert(this.width+' '+this.height);。 好像没有加载photo

2 个答案:

答案 0 :(得分:0)

this.value将文件名称作为字符串,因此您的photo.onload函数并非真正查看照片,而只是一些字符串。如果您alertconsole.log photo,您会看到我的意思。

您可能希望考虑使用File API,它可以在HTML 5中使用现代浏览器。

以下是您的代码的工作示例:

var inputPhoto = document.getElementById('photo');

inputPhoto.onchange = function() {
  var file = this.files[0];
  var reader = new FileReader();
  var photo  = new Image();

  reader.readAsDataURL(file);
  reader.onload = function(_file) {
    photo.src = _file.target.result;
    photo.onload = function() {
      alert(this.width + ' ' + this.height);
    };
  };
};

答案 1 :(得分:0)

我试图从你的问题中创造我所理解的东西 http://jsfiddle.net/qo8ovmhn/

 <input type="file" name="pho" id="photo" class="inph" onchange="myFunction()">
<img id="view" src=""></img>    
<p id="demo"></p>


 <script>
 function myFunction() {
var x = document.getElementById("photo");
var file = x.files[0];
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function(_file) {
 var img = document.getElementById("view");
 img.setAttribute("src",_file.target.result);
 var height = img.offsetHeight;
 var width = img.offsetWidth;
 alert(width + " X " + height);

 };
  }
</script>

看看这是否是你想要的。 选择图像时调用输入的更改事件。读取图像字节并将其放入图像标记中。然后从图像分量的高度和宽度获取图像的尺寸。 您可以通过添加css样式的visibility来隐藏图像:hidden或opacity:0 不要显示:none,因为这会导致高度和宽度为0px

最后,尺寸显示在警报中。