Skip to content

Instantly share code, notes, and snippets.

@Snarp
Last active May 24, 2024 16:40
Show Gist options
  • Save Snarp/6c06f60899ca3f43bdd3d8170885f83f to your computer and use it in GitHub Desktop.
Save Snarp/6c06f60899ca3f43bdd3d8170885f83f to your computer and use it in GitHub Desktop.
Script to allow copying from a protected Google Doc
/*
<https://stackoverflow.com/questions/40296831/is-it-possible-to-force-a-copy-of-a-protected-google-doc>
NOTE - 2021-05-24
-----------------
The script below isn't the fastest way to copy-and-paste from a protected
Google Doc. Before trying it, I'd suggest following MikoFrosty's advice from
the comments:
1) Change the end of the document url from `/edit` to `/mobilebasic`.
2) Disable Javascript (as described in steps 2 and 3 below).
3) Keeping the console open, reload the page.
That should be enough to allow you to copy freely. The script here is
*probably* only necessary if the /mobilebasic view isn't rendering something
correctly.
HOW TO USE
----------
1) Open the protected Doc using Chrome. Scroll all the way down to the bottom
to make sure that it is entirely loaded.
2) Open Chrome Developer Tools (<Ctrl+Shift+I>), and click "Console" to open
the Javascript Console.
3) Open the Command Console (<Ctrl+Shift+P>). Type "javascript", and select
the option "Disable Javascript" when it appears.
4) Copy the script below into the Javascript console.
5) Leaving the Javascript Console open, you may now copy-and-paste from the
document as normal. (Some formatting may be broken. Closing the console may
re-lock copy-and-pasting.)
6) (OPTIONAL) To copy the entire document as plain text (no formatting), type
the following into the console:
document.body.innerText
The text will be loaded into the Console itself; copy it by clicking the
gray-highlighted "COPY" at the end.
*/
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);
@MikoFrosty
Copy link

Any updates? None of the afforementioned steps work for now.

The mobilebasic method still works for me
(copied from @mitar)

  • Change the end of the document url from /edit to /mobilebasic.
  • Disable Javascript (as described in steps 2 and 3 below).
  • Keeping the console open, reload the page. Select all + copy.
  • Create a new blank Google Doc. Paste.

What part of this process is not working for you?

@thankventi
Copy link

hi, does anyone know how to copy it not on mobile view? the doc i want to copy a table that appears differently on mobile and desktop (i cannot figure it out on my own :P)

@dasunherath10
Copy link

does that still works on google spreadsheet , when i do this it gives a random number

@deadcoder0904
Copy link

@DamiJJJ
Copy link

DamiJJJ commented Jul 12, 2023

Works perfectly fine. Script not needed. Just change URL and disable JS ;)

@onurogut
Copy link

onurogut commented Aug 8, 2023

Simply use
image
Reading mode button on MacOS, works as well maybe anyone needs it.

@senhalil
Copy link

senhalil commented Aug 8, 2023

@onurogut I get a page that only shows the file name as a title and File/Edit/View/Tools/Help/... as subtitles 🤔

@VHAE04
Copy link

VHAE04 commented Aug 20, 2023

@onurogut
Copy link

@senhalil I tried with example that @deadcoder0904 shared and I'm attached a screenshot:

command+shift+r to switch reading mode:

image

As you can see, I can select all text/images by just simply command+a, copy and paste it into notes:
image

@falconwoods
Copy link

I would update the instructions to:

  1. Change the end of the document url from /edit to /mobilebasic.
  2. Disable Javascript (as described in steps 2 and 3 below).
  3. Keeping the console open, reload the page. Select all + copy.
  4. Create a new blank Google Doc. Paste.

That retained all formatting for me perfectly.

It works!!

@SMPSERVERS
Copy link

IT WORKED

@Mohammed-Nalwala
Copy link

  1. Change the end of the document url from /edit to /mobilebasic.

when I add "mobilebasic" end of url for google sheet it says
"Sorry, unable to open the file at present.Please check the address and try again."

@GBG7
Copy link

GBG7 commented Dec 2, 2023

  1. Change the end of the document url from /edit to /mobilebasic.

when I add "mobilebasic" end of url for google sheet it says "Sorry, unable to open the file at present.Please check the address and try again."

same

@sheenk09
Copy link

it works!

@010DevX101
Copy link

I found a workaround in /mobilebasic without having to disable JavaScript. You just have to rename the docsshared-no-select class to anything else and the script that prevents you from copying stops working.

@taiar
Copy link

taiar commented May 24, 2024

I found a workaround in /mobilebasic without having to disable JavaScript. You just have to rename the docsshared-no-select class to anything else and the script that prevents you from copying stops working.

👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment