Bỏ qua, tới nội dung
Tài liệu APIv1

Nhúng trình soạn thảo

Chế độ xem và quyền

Chế độ edit và view, cách tính kết nối, các công tắc in, tải về, chép, và cùng sửa với nhiều chế độ trên một tài liệu.

Trong trang này

Lớp nhúng v1 có hai chế độ và một nhóm công tắc giao diện. Quyền thật (ai được mở tệp nào) do máy chủ của bạn quyết định lúc ký config; O3O chỉ thực thi những gì config nói.

Hai chế độ#

editor.modeNgười dùng làm đượcTính kết nốiGhi chú
editXem, sửa, lưu, cùng sửa với người khácCó, 1 kết nối mỗi phiênChạm trần thì phiên mới bị hạ xuống view.
viewChỉ xem (và in, tải về, chép nếu ui cho phép)KhôngLuôn mở được, kể cả khi đã chạm trần.

Một người mở ba tài liệu ở chế độ sửa là ba kết nối; ba người cùng sửa một tài liệu cũng là ba kết nối. Chi tiết: cách đếm kết nối.

Công tắc giao diện#

Trường uiThuộc tính WOPI tương ứngTác dụng khi false
printHidePrintOption, DisablePrintẨn và chặn in.
exportHideExportOption, DisableExportẨn và chặn tải về dưới định dạng khác.
copyDisableCopyChặn chép nội dung ra ngoài khung.
saveButtonHideSaveOptionẨn lệnh lưu; tự lưu vẫn chạy.
userListHideUserListẨn danh sách người cùng sửa.
closeButton (true)ClosePostMessage(khi true) hiện nút đóng và phát onClose.

Cùng sửa và trộn chế độ#

Mọi phiên có cùng document.key cùng làm việc trên một tài liệu, mỗi người một editor.user.id. Người sửa và người xem có thể cùng lúc: người xem thấy thay đổi của người sửa theo thời gian thực.

HTMLHai người, hai chế độ, một tài liệu
<div id="editor-a" style="height: 45vh"></div>
<div id="editor-b" style="height: 45vh"></div>
<script src="http://localhost:8080/o3o/api.js"></script>
<script>
  // Cùng một key = cùng một tài liệu. An sửa (1 kết nối), Bình chỉ xem (không tính).
  const doc = { url: "http://localhost:8080/o3o/demo/sample.docx", title: "sample.docx", fileType: "docx", key: "coedit-demo-1" };
  new O3O.Editor("editor-a", { document: doc, editor: { mode: "edit", lang: "vi", user: { id: "u-an", name: "An" } } });
  new O3O.Editor("editor-b", {
    document: doc,
    editor: { mode: "view", lang: "vi", user: { id: "u-binh", name: "Bình" } },
    ui: { print: false, export: false, copy: false }      // người xem không in, không tải về, không chép ra ngoài
  });
</script>

Đổi chế độ khi đang mở#

editor.setReadOnly(true | false) lưu thay đổi nếu có, đổi chế độ ở gate (POST /o3o/embed/session/{id}/mode) rồi nạp lại khung. Chuyển sang sửa có xét trần kết nối.

JavaScriptsetReadOnly()
document.getElementById("toggle").onchange = async (ev) => {
  const { mode } = await editor.setReadOnly(!ev.target.checked);   // lưu thay đổi nếu có, rồi nạp lại khung
  if (ev.target.checked && mode === "view") {
    ev.target.checked = false;   // đã chạm trần: vẫn chỉ đọc, onLimitReached đã phát
  }
};