页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。


注意

提示:本文档的示例代码仅适用于本文档中的示例报表/场景。若实际报表/场景与示例代码无法完全适配(如使用功能不一致,或多个宏代码冲突等),需根据实际需求开发代码。

1.需求背景

 由于客户系统中的数据比较敏感,避免泄漏出去,故提出禁止复制粘贴的功能(针对各个类型的报表)。

...

类型:ClientSide(客户端宏)   对象:spreadsheetReport    事件:onRender 


代码块
collapsetrue
function main(spreadsheetReport) {
    preventContextMenu(spreadsheetReport.elemSheetFrame);
}
function preventContextMenu(iframe) {
    var doc = iframe.contentWindow.document;
    var list = doc.getElementsByTagName("IFRAME");
    for (var i = 0; i < list.length; i++) {
        function x(subIFrame) {
            preventContextMenu(subIFrame);
            subIFrame.onload = function() {
                preventContextMenu(subIFrame);
            }
        };
        x(list[i]);
    }
    doc.documentElement.oncontextmenu = doc.body.oncontextmenu = function() {
        return false; //禁止鼠标右键
    };
    doc.onkeydown = function(e) {
        var ev = e || window.event;
        if (ev && ev.ctrlKey && ev.keyCode == 67) { // Ctrl + C
            return false;
       }else if (ev && ev.ctrlKey && ev.keyCode == 45){// Ctrl +insert
            return false;
        }
    };
    doc.ondragstart = function() {
        return false; //禁止拖拽
    };
}

...


2.2 灵活分析宏

类型:ClientSide(客户端宏)   对象:simpleReport    事件:onRender

...