【问题标题】:Is it possible to force a copy of a protected Google doc? [closed]是否可以强制复制受保护的 Google 文档? [关闭]
【发布时间】:2017-03-10 20:37:26
【问题描述】:

Google 文档可以“锁定”页面,使其无法从其文本中复制。这对我来说似乎是错误的;计算机的复制和粘贴能力不应该是固有的吗?我无法理解一个网页如何“超越”它的权威并阻止我的计算机做一些完全自然的事情。看来如果我可以得到服务并显示我应该能够复制它的文本。

此网页如何防止我的机器复制?

【问题讨论】:

  • 它使用脚本来防止您复制文本。这在 Chrome 中通过disabling JavaScript by using the developer tools 非常容易绕过。我刚刚自己测试过,它工作正常 - 然后您可以在禁用 JavaScript 后复制和粘贴文本。至于阻止复制的脚本的具体细节,有几种可能发生这种情况的方式,其中许多可以在本网站上找到,但我不确定 Google Drive 是如何实现这一点的。
  • 既然你的问题是他们如何防止复制,我不能把它作为答案。如果有人想复制文本,请滚动到页面的最底部区域,然后使用带有此命令document.body.innerText 的浏览器控制台。要获得更准确的结果 - 导航到 https://docs.google.com/document/d/[ID]/preview
  • 自 2019 年 9 月 9 日起,您可以创建一个 achieve of the page,然后将页面打印为 PDF,同时保留文本。但是,它会在第 30 页后破坏格式,并且项目符号被替换为“????”
  • 截至 2019 年 11 月 3 日,此 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);

标签: copy google-docs


【解决方案1】:

这里是如何复制(或打印)受保护的谷歌工作表值。

注意:使用此技术,您可以复制每张纸上的单元格;无法复制电子表格文件本身。保留格式,但不保留公式。

  1. 将网址更改为:

    https://docs.google.com/spreadsheets/u/1/d/***[document id]***/preview

    文档 ID 是在 google sheet URL 中找到的随机字符串,通常长度为 40 到 45 个字符。

  2. 对于每个工作表,键入 Ctrl+ACtrl+C

  3. 将单元格粘贴到另一个电子表格中。格式化

【讨论】:

  • 已修复
  • 这不起作用
  • 确实有效。确保不要简单地在末尾添加/preview,而是将/edit 更改为/preview
  • 截至 2019 年 11 月 29 日,仍然有效 :-)
  • 现在可以使用“启用电子表格复制”Chrome 扩展程序 (chrome.google.com/webstore/detail/enable-spreadsheet-copy/…)。免责声明:我是扩展的作者。
【解决方案2】:

使用开发者工具禁用 javascript,右键单击页面,单击“打印”,将打印机的打印目标更改为“另存为 pdf”,就可以了。

【讨论】:

  • 如果您在禁用 javascript 之前加载了完整的文档,这可行!
  • 确保先滚动浏览每一页,否则文档中会出现一些空白页
  • 这很好用。
【解决方案3】:

编辑:这不再起作用了

我发现他们是如何禁用复制的,所以我将我的评论变成了答案。

这是在页面上运行的防止复制的脚本:

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 上执行此操作,请参阅 this question。我自己对此进行了测试 - 如果您在查看锁定的文档时通过该方法禁用 JavaScript,您可以立即开始选择和复制文本而没有问题。

【讨论】:

  • 如果禁用 JS,它只会加载电子表格的前 100 行。在不启用 JS 的情况下,我应该如何加载其余部分?
  • 这不再有效
  • @Alvin 它仍然有效。运行此脚本后,您需要禁用 Javascript。
  • 是否可以转换内嵌图像以便也可以复制粘贴?
  • 确实如此——在 chrome 中必须在从开发人员工具加载页面后禁用 js——禁用浏览器范围不起作用
【解决方案4】:

我尝试了其他选项,但没有一个对我有用 - 然后,尝试下载网页并保存链接。从文档重新打开,然后我可以下载为 PDF。

【讨论】:

    【解决方案5】:

    从 2018 年 5 月 10 日起,禁用 JavaScript 将根本不会加载文档,并且将“编辑”更改为“预览”也不再有效。

    我发现如果您单击三个点并转到: 更多工具>开发者工具,然后点击控制台,输入'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 中再次尝试过,结果和我描述的一样。
    • 很奇怪,你能用this Google spreadsheed 试试吗,它的内容是受保护的,不能导出和复制它的内容?
    • 对不起,电子表格是完全不同的球类游戏。最初的问题是要求谷歌文档,所以我的答案是什么。您应该为电子表格创建一个新问题,希望有人知道!
    • 这行不通了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-04
    • 2015-11-23
    • 1970-01-01
    • 2019-07-19
    • 2019-08-27
    • 2018-02-03
    相关资源
    最近更新 更多