webentwicklung-frage-antwort-db.com.de

So deaktivieren Sie Kopieren Einfügen (Browser)

Ich versuche 2 Alternativen:

  • Rechtsklick ignorieren
  • Ignorieren ctrl + Cctrl + A

Das ist mein Code:

function noMenu() {
  return false;
}
function disableCopyPaste(Elm) {
  // Disable cut/copy/paste key events
  Elm.onkeydown = interceptKeys
  // Disable right click events
  Elm.oncontextmenu = function() {
    return false
  }
}
function interceptKeys(evt) {
  evt = evt||window.event // IE support
  var c = evt.keyCode
  var ctrlDown = evt.ctrlKey||evt.metaKey // Mac support
  // Check for Alt+Gr (http://en.wikipedia.org/wiki/AltGr_key)
  if (ctrlDown && evt.altKey) return true
  // Check for ctrl+c, v and x
  else if (ctrlDown && c==67) return false // c
  else if (ctrlDown && c==86) return false // v
  else if (ctrlDown && c==88) return false // x
  // Otherwise allow
  return true
}

Und das ist mein HTML:

<body class="node88" oncontextmenu="return noMenu();" onkeydown="return disableCopyPaste();">

Die Funktion noMenu() funktioniert, aber disableCopyPaste() funktioniert nicht.

10
Rys

Das kannst du nicht.

Sie können versuchen, einige Vektoren zu blockieren (z. B. Hacks, um das Abfangen von Rechtsklicks zu erschweren) ctrl+c, was die Auswahl von Text erschwert)… Aber sie funktionieren nur, und es ist unmöglich, alle Vektoren zu blockieren (Bearbeiten -> Kopieren? Quelltext anzeigen? wgetname__? etc…).

Wenn Sie versuchen, Ihren Inhalt vor weniger technischen Benutzern zu schützen, sind diese Methoden möglicherweise in Ordnung. Wie die Kommentare hier jedoch andeuten, werden sie eher technische Benutzer frustrieren.

Wenn Sie vertrauliche Inhalte haben, die geschützt werden müssen, können Sie diese in einen Flash-Blob oder eine DRM-PDF-Datei einbetten. Das Reverse Engineering ist weiterhin möglich, erfordert jedoch einen etwas intelligenteren Angreifer.

17
David Wolever

Anstatt zu versuchen, die Tastenbefehle des Benutzers zu steuern (es ist möglich, dass einige Browser dies als schädlichen Code erkennen), können Sie die Auswahl von Text auf Ihrer Seite deaktivieren. Obwohl dies nicht verhindert, dass Daten wie in Ihren Kommentaren angegeben kopiert werden.

<!-- Disable Copy and Paste-->
<script language='JavaScript1.2'>
function disableselect(e) {
    return false
}

function reEnable() {
    return true
}

document.onselectstart = new Function (&quot;return false&quot;)

if (window.sidebar) {
    document.onmousedown = disableselect
    document.onClick = reEnable
}
</script>

Legen Sie dies in Ihre 

    <head> </head> 

tags und der Benutzer kann keinen Text auf Ihrer Seite auswählen.

Gefunden auf http://myblog-log.blogspot.com/2007/06/disable-copy-and-paste.html

10
Rich

Javascript:

//disable mouse drag select start

document.onselectstart = new Function('return false');

function dMDown(e) { return false; }

function dOClick() { return true; }

document.onmousedown = dMDown;

document.onclick = dOClick;

$("#document").attr("unselectable", "on"); 

//disable mouse drag select end

//disable right click - context menu

document.oncontextmenu = new Function("return false");


//disable CTRL+A/CTRL+C through key board start

//use this function


function disableSelectCopy(e) {

// current pressed key

    var pressedKey = String.fromCharCode(e.keyCode).toLowerCase();

    if (e.ctrlKey && (pressedKey == "c" || pressedKey == "x" || pressedKey == "v" || pressedKey == "a")) {

        return false;

    }

}

document.onkeydown = disableSelectCopy;


//or use this function

$(function () {

    $(document).keydown(function (objEvent) {

        if (objEvent.ctrlKey || objEvent.metaKey) {

            if (objEvent.keyCode == 65 || objEvent.keyCode == 97) {

                return false;

            }

        //}

        }

    });

});

CSS:

//disable selection through CSS for different browsers

#document, #ctl00_MasterPageBodyTag{
    user-select: none;
    -ms-user-select: none;
    -o-user-select:none;
    -moz-user-select: none;
    -khtml-user-select: none;
    -webkit-user-select: none;
    -webkit-touch-callout: none;
}

//where #document is the div for which select needs to be disabled and #ctl00_MasterPageBodyTag is the id of the body tag.
6
Phibinary

Warum versuchen Sie nicht, den Text nicht auswählbar zu machen? 

.unselectable {
  -webkit-user-select: none;  /* Chrome all / Safari all */
  -moz-user-select: none;     /* Firefox all */
  -ms-user-select: none;      /* IE 10+ */
  user-select: none;          /* Likely future */       
}


/*Mobile*/

-webkit-touch-callout: default   /* displays the callout */
-webkit-touch-callout: none      /* disables the callout */

Ich werde diese Antwort auch sehr bald bearbeiten. Ich sehe das gleiche Problem. Aber ich habe ein paar Informationen zum Überschreiben gefunden. Ich schreibe eine JS-Funktion, die überschrieben wird, wenn der Benutzer die Zwischenablage kopiert hat. Sowieso wird das posten, wenn es fertig ist. Ich experimentiere immer noch damit. Sie können den Artikel lesen, den ich bei CSS-Tricks gefunden habe.

https://css-tricks.com/copy-paste-the-web/

3
user3806549

Sie können steuern, welcher Text in die Zwischenablage eingefügt wird:

document.addEventListener('copy', function(e) {
    e.clipboardData.setData('text/plain', 'Please do not copy text');
    e.clipboardData.setData('text/html', '<b>Please do not copy text</b>');
    e.preventDefault();
});

https://developer.mozilla.org/en-US/docs/Web/Events/copy

1
dramus

Sie können CSS verwenden, um keine Auswahl von Text zuzulassen. Es besteht also keine Möglichkeit, Text zu kopieren.

Fügen Sie unten CSS und JS hinzu:

CSS:

    <style>
    .unselectable
    {
        -moz-user-select:none;
        -webkit-user-select:none;
        cursor: default;
    }
    html
    {
        -webkit-touch-callout: none;
        -webkit-user-select: none;
        -khtml-user-select: none;
        -moz-user-select: none;
        -ms-user-select: none;
        user-select: none;
        -webkit-tap-highlight-color: rgba(0,0,0,0);
    }
</style>

JS:

<script id="wpcp_css_disable_selection" type="text/javascript">
var e = document.getElementsByTagName('body')[0];
if(e)
{
    e.setAttribute('unselectable',on);
}
</script>
0
harkirat1892
$('some.selector').bind('cut copy paste', function (e) {
    e.preventDefault();
});

Dies funktioniert in Chrome, Firefox, Safari, IE11 und Edge. Für meine Tests arbeitete ich mit einem <div contenteditable>. Quellartikel:

https://www.codexworld.com/disable-mouse-right-click-cut-copy-paste-using-jquery

0
user393274

Website True Kopierschutz

http://www.securebit.xyz/

Besuchen Sie die Musterseite zum Überprüfen, bevor Sie diese als Spam oder Werbung deklarieren. Versuchen Sie, den Inhalt von der Musterseite zu kopieren.

http://www.securebit.xyz/

Für weitere Details und Kaufinformationen schreiben Sie uns bitte an [email protected]

Leistungen

Unterstützung für alle Sprachen (Englisch, Hindi, Tamil, Malayalam usw.) Unterstützung für alle CMS, einschließlich Wordpress, Drupal, Joomla usw. Der Inhalt kann nicht aus der Seitenquelle kopiert werden. Die Inhalte können nicht mit Developer Tools kopiert werden. Die Inhalte können nicht mit Add-Ons/Erweiterungen in einem Browser kopiert werden. Der Inhalt kann nicht durch Deaktivieren von Javascript kopiert werden.

Wenn Sie nach einfachem HTML-Code suchen, um COPY und PASTE für ein bestimmtes Element zu deaktivieren, verwenden Sie den folgenden Code. Sie können sogar die gesamte Seite blockieren, indem Sie sie auf den Body-Tag setzen.

<div oncontextmenu="return false" onkeydown="if ((arguments[0] || window.event).ctrlKey) return false"></div>

oncontextmenu = "return false" onkeydown = "wenn ((Argumente [0] || window.event) .ctrlKey) false zurückgeben"

0
Prem Acharya