Is it possible to force a copy of a protected Google doc?
Google文档可以"锁定"页面,因此无法从其文本进行复制。 对我来说这似乎是错误的; 计算机的复制和粘贴能力不应该是固有的吗? 我无法理解网页如何"超越"其权限并阻止计算机执行完全自然的操作。 看来,如果我可以得到服务并显示文字,则应该可以复制它。
该网页如何防止我的机器被复制?
-
它使用脚本来防止您复制文本。只需使用开发人员工具禁用JavaScript,即可在Chrome中轻松绕过这一点。 Ive自己对此进行了测试,并且工作正常-您可以在禁用JavaScript之后复制并粘贴文本。至于防止复制的脚本的详细信息,可能有几种发生的方式,许多方法都可以在此站点上找到,但是我不确定Google云端硬盘如何实现此目的。
-
由于您的问题是他们如何防止复制,所以我不能将其作为答案。如果有人要复制文本,请滚动到页面最底部,然后将浏览器控制台与此命令document.body.innerText结合使用。为了获得更准确的结果-导航至https://docs.google.com/document/d/[ID]/preview
-
我使用了Chrome蒸馏器功能,并从那里复制了文本-适用于文档,但不确定电子表格。虽然确实搞乱了格式。
-
2019年中期的可行解决方案:1.将最后一个url部分替换为/ preview 2.转到chrome调试器查找表,将其内容复制到剪贴板3.使用convertcsv.com/html-table-to-csv.htm等服务将html转换为xls / csv
-
从9/9/19开始,您可以创建页面的实现,然后以PDF格式打印出页面,同时保留文本。但是,它会在第30页后中断格式化,并且将项目符号点替换为" ??"
-
从2019-11-03开始,此javascript将当前文档数据复制到空白文档中。因为代码很长,所以在下一条注释中给出:
-
blankDocumentink=xxxxxxxxxxxx; a=;for(s of document.body.getElementsByTagName(script)){if(s.innerText.indexOf(DOCS_modelChunk = )===0){a+=s.innerText.replace(DOCS_modelChunkLoadStart = new Date().getTime(); _getTimingInstance().incrementTime(\mp\, DOCS_modelChunkLoadStart - DOCS_modelChunkParseStart); DOCS_warmStartDocumentLoader.loadModelChunk(DOCS_modelChunk); DOCS_modelChunk = undefined;, DOCS_warmStartDocumentLoader.loadModelChunk(DOCS_modelChunk););}}w=open(blankDocumentink);setTimeout(w.eval, 5000, a);
-
用法:>在您的Google文档中创建一个空白文档。 >在编辑模式下,复制其链接。 >用上面的代码中的此链接替换xxxxxxxxx。 >现在打开受保护的目标Google文档。 >按下F12>转到"控制台">在此处粘贴代码>等待直到打开空白文档并将数据复制到其中。 > ****最重要-不要编辑/关闭********>按下Ctrl + A(全选)-右键单击-复制>刷新(F5)>它将再次加载空白文档>粘贴刚刚的数据复制(Ctrl + V)。 >现在应该将其自动保存。 (续...)
-
(...续。)或者,您可以将数据粘贴到MS Word或任何此类字处理器中。另外,请注意,此代码适用于除图像外的所有页面内容。受保护文档中的图像将显示为空白框。
在Chrome中禁用javascript不再有效。在重新打开数据之前,它不会为您提供数据。
这是访问和复制受保护的Google表格数据的非常简单的方法。
只需将URL地址更改为:
https://docs.google.com/spreadsheets/u/1/d/ [文档ID] /预览
文档ID是在Google表格URL中找到的随机字符串,通常为40至45个字符。
-
网址的最后一个路径是/ edit,我只是更改为预览,所以它有效:D
-
是的,那是可行的。花了我一会儿找出来。
-
这被修补
-
这不起作用
-
@Rahul,我想知道你是怎么做到的?它仍然有效。
-
不再工作了。
-
确实有效。确保不要简单地在末尾添加preview,将edit更改为preview
-
不,这不起作用
-
截至2019年9月30日:此方法有效。
从2018年5月10日开始,禁用JavaScript根本不会加载文档,将'edit'更改为'preview'也不再起作用。
我发现,如果您单击三个点并转到:
单击更多工具>开发人员工具,然后单击控制台,然后键入'document.body.innerText',它将整个文档加载为文本文件,以便您可以复制到自己的内心。
-
我只是在控制台中返回了以下内容:" View only Windows To enable screen reader support, press ?+Option+Z To learn about keyboard shortcuts, press ?slash Sheet1 Explore Sum: 2758560 Anonymous Squirrel has joined the document."
-
好吧,很抱歉地说您一定做错了–我刚刚在macOS和Chrome中都尝试过,并且按我的描述工作了。
-
很奇怪,您可以尝试使用此Google扩展程序来尝试它吗?该扩展程序可以防止导出和复制其内容?
-
抱歉,电子表格是一个完全不同的球类游戏。最初的问题是要一个Google文档,所以我的答案是什么。您应该为电子表格创建一个新问题,希望有人知道!
-
应该将其标记为当前正确答案。
编辑:这不再起作用
我发现他们是如何禁用复制的,所以我将自己的评论变成了答案。
这是阻止复制的页面上运行的脚本:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| function rtcScript() {
document.oncontextmenu = null;
document.onselectstart = null;
document.onmousedown = null;
document.onclick = null;
document.oncopy = null;
document.oncut = null;
var elements = document.getElementsByTagName('*');
for (var i = 0; i < elements.length; i++) {
elements[i].oncontextmenu = null;
elements[i].onselectstart = null;
elements[i].onmousedown = null;
elements[i].oncopy = null;
elements[i].oncut = null;
}
function preventShareThis() {
document.getSelection = window.getSelection = function() {
return {isCollapsed: true};
}
}
var scripts = document.getElementsByTagName('script');
for (var i = 0; i < scripts.length; i++) {
if (scripts[i].src.indexOf('w.sharethis.com') > -1) {
preventShareThis();
}
}
if (typeof Tynt != 'undefined') {
Tynt = null;
}
}
rtcScript();
setInterval(rtcScript, 2000); |
请注意,它将每个元素设置为不可复制,可选或可剪切,并禁用了上下文菜单。通过禁用页面上的脚本,这很容易绕开。有关如何在Chrome上执行操作的信息,请参见此问题。我已经亲自测试过-如果您在查看锁定的文档时通过该方法禁用了JavaScript,则可以立即开始选择并复制文本。
-
如果禁用JS,则只会加载电子表格的前100行。我应该如何在不启用JS的情况下加载其余部分?
-
这不再起作用
-
@Alvin仍然有效。您需要在运行此脚本后禁用Javascript。
-
是否可以转换嵌入式图像,使其也可以复制粘贴?
-
确实如此-在chrome中,从开发人员工具加载页面后必须禁用js-禁用浏览器范围无效
-
问题是,直到再次启用javascript,它才会显示文件。
使用开发人员工具禁用javascript,右键单击页面,单击"打印",将打印机的打印目标更改为"另存为pdf",就可以了。
我尝试了其他选项,但没有一个对我有用-然后,尝试下载网页并保存链接。从docs重新打开,然后我就可以将其下载为PDF。