浏览器在线预览pdf、txt、office文件

别说谁变了你拦得住时间么 提交于 2020-01-03 10:21:01
//使用文件预览的原因是:TMD微信浏览器屏蔽掉文件下载链接,只好折中使用文件在线预览功能//要点:1.office文件用微软的插件打开 http://view.officeapps.live.com/op/view.aspx?src=“office文件地址(如http://oss.aliyun.com/xxx.word 、\xxx.xlsx)”//     2.txt、pdf文件用 pdf.js 插件实现在线预览 嵌套在layer显示(本人的前端烂的一匹)//     3.图片文件 也用layer显示//     pdf.js下载地址https://files.cnblogs.com/files/indifferent/pdf.js ; pdf.worker.js下载地址:https://files.cnblogs.com/files/indifferent/pdf.worker.js
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>项目详情</title>
        <link rel="icon" type="image/x-icon" href="https://erun.oss-cn-shenzhen.aliyuncs.com/images/system/config/website/favicon_0.jpg">
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">

        {link href="@web/css/bid/public.css"}

        <style>
            .downloadFile{
                margin-top: 20px;
                    padding-left: 5px;
            }
            .downloadFile ul{
                padding: 0;
                margin:0;
                margin-top: 10px;
                list-style: none;
            }
            .downloadFile li{
                color:blue;
                text-decoration: underline;
                margin-bottom: 5px
            }
            .pdfobject-container { 
                height: 30rem; border: 1rem solid rgba(0,0,0,.1); 
            }
            .lightbox{
            position: fixed;
            top: 0px;
            left: 0px;
            height: 100%;
            width: 100%;
            z-index: 7;
            opacity: 0.3;
            display: block;
            background-color: rgb(0, 0, 0);
            display: none;
        }
        .pop,iframe{
            position: absolute;
            /*left: 50%;*/
            top:0;
            /*width: 100%;*/
            width: 100%;
            height: 100%;
            /*margin-left: -446.5px;*/
            z-index: 9;
        }
        </style>
    </head>
    <body>
        <div class="zbDetail">
            <p>{$info.obj_name}</p>
            <div class="company">{$info.company}</div>
            <div class="other">
                <span>{strstr($info.address,',',-1)}</span>
                <div class="time">
                    <img src="../../images/bid/clock.png">
                    <div> 截止 {date('Y-m-d',$info.endtime)}</div>
                </div>
            </div>
            <div class="hr"></div>
            <div class="title">
                项目介绍
            </div>
            {*<div class="otherItem">规模:人民币2757529.19元</div>*}
            <div class="otherItem">{$info.synopsis}</div>
            <div class="hr"></div>
            <div class="title">
                招标要求
            </div>
            <div class="otherItem">
                {$info.demand}
            </div>
            {if $info.attachmentItem neq ''}
            <div class="downloadFile">
                <p >附件下载</p>
                    <ul class="uploadFileSource" >
                    
                      {foreach from=$info.attachmentItem item=item key=key}
                        <li >
                            <!-- <a class="fileview" data-url="{$item[0]}" href="http://view.officeapps.live.com/op/view.aspx?src={$item[0]}" download="{$item[1]}">{$item[1]}</a> -->
                            <a class="fileview" data-id="file{$key}" data-url="{$item[0]}" href="javascript:void(0)" download="{$item[1]}">{$item[1]}</a>
                        </li> 
                      {/foreach}
                    
                   </ul>
            </div>
            {/if}
            </div>
            <a class="goSub" href="./form.html?id={$info.id}">我要投标</a>
        </div>

    </body>
</html>
{script src='@web/js/jquery-1.9.1.min.js'}
{script src='@web/js/pdf.js'}
{script src='@web/js/pdf.worker.js'}
<script type="text/javascript">
        function showPdf(isShow) {
            var state = "";
            if (isShow) {
                state = "block";
            } else {
                state = "none";
            }
            var pop = document.getElementById("pop");
            pop.style.display = state;
            var lightbox = document.getElementById("lightbox");
            lightbox.style.display = state;
        }

        function close(ele){
            // showPdf(false)
            ele.onclick = function(){
                showPdf(false);
            }
        }
</script>
<script src="https://cdn.bootcss.com/layer/3.1.0/layer.js"></script>
<script type="text/javascript">
    $().ready(function(){
        function show(id){
            console.log('dsd')
            // var temp = $('#'+id).contents().("#plugin");
            // console.log(temp.attr('name'))
            $('#'+id).onclick=function(){
                console.log('hlslfs')
                if($('#pop').css('display')=='block'){
                    $('#'+id).css('display', 'none');
                }
                
            }
        }

        $('.fileview').click(function(){
            var dataurl = $(this).attr('data-url')
            var attr = dataurl.split('.');
            var name = dataurl.split('/');

            if(attr[attr.length-1] == 'doc'|| attr[attr.length-1] == 'docx'|| attr[attr.length-1] == 'docm'|| attr[attr.length-1] == 'dotx' || attr[attr.length-1] == 'dotm' || attr[attr.length-1] == 'xls'|| attr[attr.length-1] == 'xlsx'|| attr[attr.length-1] == 'xlsm'|| attr[attr.length-1] == 'xltx'|| attr[attr.length-1] == 'xltm'|| attr[attr.length-1] == 'xlsb'|| attr[attr.length-1] == 'xlam' || attr[attr.length-1] == 'ppt' || attr[attr.length-1] == 'pptx'|| attr[attr.length-1] == 'pptm'|| attr[attr.length-1] == 'ppsx'|| attr[attr.length-1] == 'ppsm'|| attr[attr.length-1] == 'potx'|| attr[attr.length-1] == 'potm'|| attr[attr.length-1] == 'ppam'){
                alert
                window.location.href = 'http://view.officeapps.live.com/op/view.aspx?src='+dataurl;
            }else if(attr[attr.length-1] == 'pdf' || attr[attr.length-1] == 'PDF'|| attr[attr.length-1] == 'txt'){
     
                layer.open({
                  type: 1,
                  maxmin: true,
                  area: ['100%', '100%'],
                  shadeClose: true, //点击遮罩关闭
                  content: "<iframe src='"+dataurl+"' frameborder='0' id='"+$(this).attr('data-id')+"' name='pdfContainer'></iframe>"
                });
              
            }else if(attr[attr.length-1] != 'txt'){
       
                var photo = [];//创建对象
                var photosJSON = {
                    title: "图片信息",
                    id: "0",
                    start: 0,
                    data: [{
                        'src':dataurl,
                        'pid':0,
                        'alt':name[name.length-1],
                        'thumb':''
                    }]
                }
               
                // console.log(photosJSON);
    //             //相册层
                // // $.getJSON('test/photos.json?v='+new Date, function(json){
                  layer.photos({
                    photos: photosJSON //格式见API文档手册页
                    ,anim: 5 //0-6的选择,指定弹出图片动画类型,默认随机
                  });
                // });
            }

        });

    });

    var plugin = window.top.document.getElementById("plugin");
    if(plugin != null){
        plugin.onclick = function(){
            close()
        }
    }
        
    $('#pop').onclick= function(){
        console.log('dsdsd')
        close();
    }
    
</script>
<script type="text/javascript">
    
</script>

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!