注意 |
---|
提示:本文档的示例代码仅适用于本文档中的示例报表/场景。若实际报表/场景与示例代码无法完全适配(如使用功能不一致,或多个宏代码冲突等),需根据实际需求开发代码。 |
1.需求背景
由于客户系统中的数据比较敏感,避免泄漏出去,故提出禁止复制粘贴的功能(针对各个类型的报表)。
...
代码块 |
---|
linenumbers | true |
---|
collapse | true |
---|
|
function main(spreadsheetReport) {
var doc = spreadsheetReport.elemSheetFrame.contentWindow.document;
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; //禁止拖拽
};
} |
...
类型:ClientSide(客户端宏) 对象:spreadsheetReport 事件:onRender
代码块 |
---|
|
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
代码块 |
---|
linenumbers | true |
---|
collapse | true |
---|
|
function main(simpleReport, simpleReportContext) {
var div = simpleReport.content;
var doc = div.ownerDocument;
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; //禁止拖拽
};
} |
...
代码块 |
---|
linenumbers | true |
---|
collapse | true |
---|
|
function main(simpleReport, simpleReportContext) {
var div = simpleReport.content;
var doc = div.ownerDocument;
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; //禁止拖拽
};
} |
...
代码块 |
---|
linenumbers | true |
---|
collapse | true |
---|
|
function main(insight) {
var div = insight.container;
var doc = div.ownerDocument;
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; //禁止拖拽
};
} |
...
代码块 |
---|
linenumbers | true |
---|
collapse | true |
---|
|
function main(olapQuery) {
var div = olapQuery.frameViewContainer;
var doc = div.ownerDocument;
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; //禁止拖拽
};
} |
...
代码块 |
---|
linenumbers | true |
---|
collapse | true |
---|
|
function main(page, pageContext) {
document.documentElement.oncontextmenu = document.body.oncontextmenu = function() {
return false; //禁止鼠标右键
};
document.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;
}
};
document.ondragstart = function() {
return false; //禁止拖拽
};
var pList = page.dashletList;
for(var i=0;i<pList.length;i++){
var dashletType = pList[i].dashletType;
if(dashletType=="SPREADSHEET_REPORT"){
spreadsheetReport = pList[i].currentPortlet.queryCmd.spreadsheetReport;
spreadsheetReport.onAfterRefresh.subscribe(function(spreadsheetReport) {debugger;
var doc = spreadsheetReport.elemSheetFrame.contentWindow.document;
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;
}
};
doc.ondragstart = function() {
return false; //禁止拖拽
};
});
}
}
} |
...