299 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			299 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="OnlineEditingPrivate.aspx.cs" Inherits="FineUIPro.Web.AttachFile.OnlineEditingPrivate" %>
 | 
						||
 | 
						||
<!DOCTYPE html>
 | 
						||
 | 
						||
<html xmlns="http://www.w3.org/1999/xhtml">
 | 
						||
 | 
						||
<head runat="server">
 | 
						||
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 | 
						||
    <link rel="icon" href="/favicon.ico" type="image/x-icon" />
 | 
						||
    <title>
 | 
						||
        Spire.Office
 | 
						||
    </title>
 | 
						||
 | 
						||
    <style>
 | 
						||
        html {
 | 
						||
            height: 100%;
 | 
						||
            width: 100%;
 | 
						||
        }
 | 
						||
 | 
						||
        body {
 | 
						||
            background: #fff;
 | 
						||
            color: #333;
 | 
						||
            font-family: Arial, Tahoma, sans-serif;
 | 
						||
            font-size: 12px;
 | 
						||
            font-weight: normal;
 | 
						||
            height: 100%;
 | 
						||
            margin: 0;
 | 
						||
            overflow-y: hidden;
 | 
						||
            padding: 0;
 | 
						||
            text-decoration: none;
 | 
						||
        }
 | 
						||
 | 
						||
        form {
 | 
						||
            height: 100%;
 | 
						||
        }
 | 
						||
 | 
						||
        div {
 | 
						||
            margin: 0;
 | 
						||
            padding: 0;
 | 
						||
        }
 | 
						||
    </style>
 | 
						||
 | 
						||
    <script language="javascript" type="text/javascript"
 | 
						||
        src="http://47.104.102.122:8000/web/editors/spireapi/SpireCloudEditor.js"></script>
 | 
						||
 | 
						||
    <script type="text/javascript" language="javascript">
 | 
						||
        var docEditor;
 | 
						||
        var fileName = "";
 | 
						||
        var lang = "zh";
 | 
						||
        var fileType = "";
 | 
						||
        var token = null;
 | 
						||
        var appid = null;
 | 
						||
        var appkey = null;
 | 
						||
        //console.log(Appid + "---" + appkey);
 | 
						||
        var innerAlert = function (message) {
 | 
						||
            if (console && console.log)
 | 
						||
                console.log(message);
 | 
						||
        };
 | 
						||
 | 
						||
        var onReady = function () {
 | 
						||
            innerAlert("Document editor ready");
 | 
						||
 | 
						||
        };
 | 
						||
 | 
						||
        var onDocumentStateChange = function (event) {
 | 
						||
            var title = document.title.replace(/\*$/g, "");
 | 
						||
            document.title = title + (event.data ? "*" : "");
 | 
						||
        };
 | 
						||
 | 
						||
        var onRequestEditRights = function () {
 | 
						||
            location.href = location.href.replace(RegExp("action=view\&?", "i"), "");
 | 
						||
        };
 | 
						||
 | 
						||
        var onError = function (event) {
 | 
						||
            if (event)
 | 
						||
                innerAlert(event.data);
 | 
						||
        };
 | 
						||
 | 
						||
        var onOutdatedVersion = function (event) {
 | 
						||
            location.reload(true);
 | 
						||
        };
 | 
						||
 | 
						||
        function ajax(options) {
 | 
						||
            options = options || {};
 | 
						||
            var method = (options.type || "GET").toUpperCase(),
 | 
						||
                url = options.url,
 | 
						||
                queryString = null;
 | 
						||
            if (!url)
 | 
						||
                return;
 | 
						||
            if (options.data) {
 | 
						||
                queryString = [];
 | 
						||
                for (var attr in options.data) {
 | 
						||
                    queryString.push(attr + "=" + options.data[attr]);
 | 
						||
                }
 | 
						||
                queryString = queryString.join("&");
 | 
						||
            }
 | 
						||
            if (method === "GET" && queryString) {
 | 
						||
                url += "?" + queryString;
 | 
						||
                queryString = "";
 | 
						||
            }
 | 
						||
            var xhr = new XMLHttpRequest();
 | 
						||
            xhr.open(method, url, true);
 | 
						||
            if (method === "POST")
 | 
						||
                xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
 | 
						||
                xhr.setRequestHeader("token", "<%=this.CurrUser.UserId%>");
 | 
						||
            xhr.send(queryString);
 | 
						||
            xhr.onreadystatechange = function () {
 | 
						||
                if (xhr.readyState === 4) {
 | 
						||
                    if (xhr.status === 200) {
 | 
						||
                        var data = xhr.responseText;
 | 
						||
                        if (options.dataType === "json")
 | 
						||
                            data = JSON.parse(data);
 | 
						||
                        options.success && options.success(data);
 | 
						||
                    } else {
 | 
						||
                        options.error && options.error(xhr.status);
 | 
						||
                    }
 | 
						||
                }
 | 
						||
            }
 | 
						||
        }
 | 
						||
        var callbackfn = function (result) {
 | 
						||
            console.log(result.data);
 | 
						||
            if (result && result.data) {
 | 
						||
                var data = result.data,
 | 
						||
                    fileName = data[0],
 | 
						||
                    url = data[1];
 | 
						||
                if (fileName.indexOf('=') > -1)
 | 
						||
                    fileName = fileName.split('=')[1];
 | 
						||
                var host = location.hostname;
 | 
						||
                ajax({
 | 
						||
                    url: '<%=CallBackUrl%>',
 | 
						||
                    type: 'post',
 | 
						||
                    data: {
 | 
						||
                        'UrlStr': url,
 | 
						||
                        'PCUrl': '<%=PCUrl%>',
 | 
						||
                    },
 | 
						||
                    dataType: 'json',
 | 
						||
                    async: false,
 | 
						||
                    success: function (json) {
 | 
						||
                        if (json.code == 1 || json.code == '1') {
 | 
						||
                            alert('保存成功');
 | 
						||
                        } else {
 | 
						||
                            this.error(json, '保存失败');
 | 
						||
                        }
 | 
						||
                    },
 | 
						||
                    error: function (json, msg) {
 | 
						||
                        alert(+msg);
 | 
						||
                    }
 | 
						||
                });
 | 
						||
            }
 | 
						||
        };
 | 
						||
        var connectEditor = function () {
 | 
						||
            var type = 'desktop';
 | 
						||
            if (type == "desktop") {
 | 
						||
                var app = navigator.appVersion;
 | 
						||
                if (app.toLowerCase().indexOf('window') != -1) {
 | 
						||
                    type = "desktop";
 | 
						||
                } else {
 | 
						||
                    type = "mobile";
 | 
						||
                }
 | 
						||
            };
 | 
						||
           // var urlString = "https://cloud.e-iceblue.cn/demo/sample.docx";
 | 
						||
            var urlString = "<%=BLL.Funs.SGGLUrl%>" + "<%=PCUrl%>";
 | 
						||
 | 
						||
            var arrfn = urlString.split(".");
 | 
						||
            var strp = arrfn[arrfn.length - 1];
 | 
						||
            var documentTypeValue = null;
 | 
						||
            switch (strp) {
 | 
						||
                case "xls":
 | 
						||
                case "xlsx":
 | 
						||
                case "xlsm":
 | 
						||
                case "xlt":
 | 
						||
                case "xltx":
 | 
						||
                case "xltm":
 | 
						||
                case "ods":
 | 
						||
                case "fods":
 | 
						||
                case "ots":
 | 
						||
                case "csv":
 | 
						||
                    documentTypeValue = "spreadsheet";
 | 
						||
                    break;
 | 
						||
                case "pps":
 | 
						||
                case "ppsx":
 | 
						||
                case "ppsm":
 | 
						||
                case "ppt":
 | 
						||
                case "pptx":
 | 
						||
                case "pptm":
 | 
						||
                case "pot":
 | 
						||
                case "potx":
 | 
						||
                case "potm":
 | 
						||
                case "odp":
 | 
						||
                case "fodp":
 | 
						||
                case "otp":
 | 
						||
                    documentTypeValue = "presentation";
 | 
						||
                    break;
 | 
						||
                default:
 | 
						||
                    documentTypeValue = "document";
 | 
						||
                    break;
 | 
						||
            }
 | 
						||
 | 
						||
            docEditor = new SpireCloudEditor.OpenApi("iframeEditor", {
 | 
						||
                    fileAttrs: {
 | 
						||
                        fileInfo: {
 | 
						||
                            name: '',
 | 
						||
                            ext: '',
 | 
						||
                            primary: '',
 | 
						||
                            creator: '',
 | 
						||
                            createTime: new Date('20210505')
 | 
						||
                        },
 | 
						||
                        sourceUrl: urlString,
 | 
						||
                        createUrl: '',
 | 
						||
                        callbackUrl: '', ////This item can be empty, but only if the 'onSave' callback function must be defined in events. If the callback function is undefined and this item is empty, Cloud Editor will not provide save function.
 | 
						||
                        verification: null, //用户文件系统下载文件时若需要验证类似token的数据可以写在这里
 | 
						||
                        canEdit: true
 | 
						||
                    },
 | 
						||
                    templates:"",
 | 
						||
                    whiteLabel:true,
 | 
						||
                    user: {
 | 
						||
                        primary: '',
 | 
						||
                        name: '<%=this.CurrUser.UserName%>',
 | 
						||
                        canSave: true,
 | 
						||
                        customization: {
 | 
						||
                            public: {
 | 
						||
                                common: {
 | 
						||
                                    whiteLabel: true,
 | 
						||
                                    defaultZoom: 1,
 | 
						||
                                    openReviewChanges: false,
 | 
						||
                                    permGroups: ['everyone'], //限制编辑分组
 | 
						||
                                    viewVersion: false,
 | 
						||
                                    header: {
 | 
						||
                                        hideTitle: false,
 | 
						||
                                        defaultView: 'full'
 | 
						||
                                    }
 | 
						||
                                },
 | 
						||
                                word: null, //doc定制
 | 
						||
                                powerpoint: null, //ppt定制
 | 
						||
                                excel: null //xls定制
 | 
						||
                            },
 | 
						||
                            "private": {
 | 
						||
                                "token": null,
 | 
						||
                                "appid": null,
 | 
						||
                                "appkey": null
 | 
						||
                            }
 | 
						||
                        }
 | 
						||
                    },
 | 
						||
                    editorAttrs: { //编辑器配置
 | 
						||
                        editorWidth: '100%',
 | 
						||
                        editorHeight: '100%',
 | 
						||
                        editorMode: '<%=editorMode%>',
 | 
						||
                        editorType: 'document', //编辑器类型,可不配置,程序根据文件类型获取,结果为 document,presentation,spreadsheet
 | 
						||
                        platform: 'windows', //编辑器平台类型,可选windows, mobile, embedded
 | 
						||
                        viewLanguage: 'zh', //平台界面展示语言可选en/zh
 | 
						||
                        canChat: true, //是否可聊天
 | 
						||
                        canComment: true, //是否可批注
 | 
						||
                        canReview: true,
 | 
						||
                        canDownload: true,
 | 
						||
                        canForcesave: true,
 | 
						||
                        embedded: {
 | 
						||
                            saveUrl: '',
 | 
						||
                            embedUrl: '',
 | 
						||
                            shareUrl: ''
 | 
						||
                        },
 | 
						||
                        events: {
 | 
						||
                            'onReady': onReady,
 | 
						||
                            'onDocumentStateChange': onDocumentStateChange,
 | 
						||
                            'onError': onError,
 | 
						||
                            'onRequestEditRights': onRequestEditRights,
 | 
						||
                            'onOutdatedVersion': onOutdatedVersion,
 | 
						||
                            'onSave': callbackfn
 | 
						||
                        }
 | 
						||
                    }
 | 
						||
                },
 | 
						||
                appid,
 | 
						||
                appkey
 | 
						||
            );
 | 
						||
        };
 | 
						||
        if (window.addEventListener) {
 | 
						||
            window.addEventListener("load", connectEditor);
 | 
						||
        } else if (window.attachEvent) {
 | 
						||
            window.attachEvent("load", connectEditor);
 | 
						||
        }
 | 
						||
    </script>
 | 
						||
</head>
 | 
						||
 | 
						||
<body>
 | 
						||
    <form name="form1" method="post" action="./docEditor.aspx?fileID=demo+(2).docx&lang=zh" id="form1">
 | 
						||
        <div>
 | 
						||
            <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE"
 | 
						||
                value="/wEPDwUKMTkyMjc5MTU4M2RkBQQQBsVcOHQbzTlwYapiES2Trc9Z/U4CC+r9rluZubc=" />
 | 
						||
        </div>
 | 
						||
        <div>
 | 
						||
            <input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="C2EAC0DE" />
 | 
						||
        </div>
 | 
						||
        <div id="iframeEditor">
 | 
						||
        </div>
 | 
						||
    </form>
 | 
						||
</body>
 | 
						||
 | 
						||
</html>
 | 
						||
 |