天天看點

Office線上預覽

Office檔案線上預覽是目前線上辦公必不可少的一項需求,一般情況都是需要後端去完成的。那麼我作為前端工程師的我們如何解決這一問題呢?

第一步,擷取準備預覽位址

  1. 此處使用的usdoc的線上預覽模式,使用方法以及開發文檔可以參考

             ​​http://usdoc.cn/show​​

前置預覽位址: http://vw.usdoc.cn/?src=

這個位址src後面緊跟檔案位址

例如:http://vw.usdoc.cn/?src=檔案位址

注意:此處的檔案位址必須為網絡檔案位址。

如:​​http://vw.usdoc.cn/?w=5&src=https://zh.usdoc.cn/view/三好學生申請書.wps​​

=注意=

src後面的檔案位址建議編碼一下,如果路徑中含有中文在某些浏覽器可能會無法擷取單檔案解析。

代碼如下:

<!DOCTYPE html>
<html lang="zh">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title></title>
        <style type="text/css">
            #app>input {
                width: 300px;
                height: 30px;
                border-radius: 3px;
                border-style: none;
                border: 1px solid #bababa;
            }
            #app>button {
                padding: 10px 30px;
                border: 1px solid #bababa;
                background-color: #FFF;
                border-radius: 3px;
            }

            iframe {
                border-style: none;
                border: 1px solid #d8d8d8;
            }
        </style>
    </head>
    <body>
        <div id="app">
            <span>檔案位址:</span>
            <input name="fileSrc" type="text" />
            <button id="view">預覽</button>
        </div>
        <iframe src=""
            width="800" height="650">

        </iframe>
    </body>
</html>
<script src="js/jquery-2.2.0.min.js"></script>
<script type="text/javascript">
    var preSrc = "http://61office.com/?w=5&src="; 
    /**
     *點選開始預覽 
     */
    //http://61office.com/?w=5&src=https:/zh.usdoc.cn/view/%E4%B8%89%E5%A5%BD%E5%AD%A6%E7%94%9F%E7%94%B3%E8%AF%B7%E4%B9%A6.wps
    $("#view").click(() => {
        let url = $("input[name='fileSrc']").val();
        if (url.trim()=="") {
            //沒有擷取到檔案位址
        }
        //檔案位址url解碼一次,防止中文出錯
        url = decodeURIComponent(url);
        $($("iframe")[0]).attr("src",preSrc+url)
    })
</script>      

繼續閱讀