在一些编辑器中我们可以经常看到,多张图片上传功能里面有个在线管理,这个功能是可以选择你之前上传过的所有图片,其实原理是很清晰的,就是遍历出你网站目录所有的图片。今天小编做的这个功能比较简单,只是某个文件夹下的所有图片,这个文件是我存放文章封面图的文件夹,为什么做这个功能呢,就是我在写文章的时候我每次都要从本地,上传一张图片,其实有些图片是可以共用的,封面而已只有不在同一页显示就行了。下面看看我做的效果图吧。

雷小天博客

我点击“在线图片”按钮就弹出一个可以选封面的图库,当在点击的时候会有一个被选择的边框效果,最后确定选择就能选择我刚刚选中的图片了。下面来看实际代码吧。

add.html文件

  <input type="button" value="在线图片" onclick="centerWindow('__URL__/online','upfile','810','545')" />
  <script type="text/javascript">
    function centerWindow(url,name,width,height){
  var left=(screen.width-width)/2;
  var top=(screen.height-height)/2-50;
  window.open(url,name,'width='+width+',height='+height+',top='+top+',left='+left);
}
 </script>

online.html文件

  <!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>在线图片</title>
    <script type="text/javascript" src="__HOME_JS__/jquery.2.1.4.min.js"></script>
    <style type="text/css">
    .classify-active img{
      border:3px solid orange;
    }
    .cmenu li{
      list-style-type:none;
      display: inline;
    }
    </style>
    <script type="text/javascript">
    $(function(){
     //点击给选择图片加上边框效果
     $("#cmenu").find("li").eq(0).addClass("classify-active");
     var cotrs = $(".cmenu li");
     cotrs.click(function(){
     $(this).addClass("classify-active").siblings().removeClass("classify-active");
    });
    });
    </script>
</head>

<body>
  <div >
    <ul id="cmenu">
      <foreach name="data" item="v">
      <li><img  src="{$v}" style="width:9%;margin:3px;"></li>
      </foreach>
    </ul>
  </div>

  <div style="margin-top:15px;text-align:center;"><button type="submit" onclick="selectimg(this)" class="btn btn-info btn-current">确认选择</button></div>

</body>
<script type="text/javascript">
//开门指令
function selectimg(obj){
  var src=$(".classify-active").find("img").attr('src');
  // alert(src);
  window.opener.document.getElementById('thumbnail').value =src;
  window.opener.document.getElementById('photo').style.display='block';
  window.opener.document.getElementById('photo').src=src;
  window.close();
}
</script>
</html>

其实最重要的还是这段js代码,这段实现把选中的图片url放到input中,并且关闭刚刚打开的窗口

  <script type="text/javascript">
//开门指令
function selectimg(obj){
  var src=$(".classify-active").find("img").attr('src');
  // alert(src);
  window.opener.document.getElementById('thumbnail').value =src;
  window.opener.document.getElementById('photo').style.display='block';
  window.opener.document.getElementById('photo').src=src;
  window.close();
}
</script>

最后看看选中后的效果图

雷小天博客