3 Stimmen

Ist es möglich, den Rechtsklick auf einen Iframe zu deaktivieren?

Ist es möglich, den Rechtsklick auf einen Iframe zu deaktivieren? Ich weiß, dass es möglich ist, wenn sich die Datei im Iframe in der gleichen Domäne befindet, aber ich frage mich, ob es möglich ist, wenn die Datei im Frame von einer externen Website stammt?

gracias

2 Stimmen

Websites, die Kontextmenüs deaktivieren, erinnern mich immer an dilettantisch programmierte Websites, die versuchen, ihre kostbare Quelle zu verstecken!

0 Stimmen

@Andy:Ich versuche nicht, mein wertvolles Skript hier zu verstecken, ich versuche nur zu verhindern, dass die Benutzer es aktualisieren...ich weiß, dass die Leute immer noch einen Weg finden könnten, es zu aktualisieren, aber ich habe nur geschaut, welche Möglichkeiten ich habe...danke, nyway

9voto

Sampson Punkte 258265

Sie können das Kontextmenü nicht von vornherein deaktivieren. Sie können nur zerbrechliche Barrikaden errichten, um die Leute davon abzuhalten, sich darauf zu berufen. . Aber die Tatsache, dass es sich um einen externen iframe handelt, macht das Problem nur noch schlimmer. Nein, Sie können die Benutzer nicht daran hindern, das Kontextmenü auf Ihrem iframe zu aktivieren. Tut mir leid.

4voto

Dedrick Punkte 187

Funktioniert im IE, um den Rechtsklick auf Iframe zu deaktivieren, aber das Problem ist, dass es nicht mit externen Websites funktioniert,,, iframed file must be at the same domain ... take a look on it

<html>
<head>
<title>Disable Context Menu</title>
<script type="text/jscript">
  function disableContextMenu()
  {
    window.frames["fraDisabled"].document.oncontextmenu = function(){alert("No way!"); return false;};   
    // Or use this
    // document.getElementById("fraDisabled").contentWindow.document.oncontextmenu = function(){alert("No way!"); return false;};;    
  }  
</script>
</head>
<body bgcolor="#FFFFFF" onload="disableContextMenu();" oncontextmenu="return false">
<iframe id="fraDisabled" width="528" height="473" src="local_file.html" onload="disableContextMenu();" onMyLoad="disableContextMenu();"></iframe>
</body>
</html>

0 Stimmen

- Das war ein schönes Beispiel, Dedrick.

0 Stimmen

Dieses Beispiel scheitert für iframe mit pdf-Datei gibt es eine Möglichkeit, es für IE zu stoppen.

0voto

Andy E Punkte 324972

Nein, das ist nicht möglich, wenn es sich um eine externe Domäne handelt. Ein Mausklick oder ein anderes Ereignis beginnt mit dem ersten, obersten Element, auf dem es ausgelöst wird, und arbeitet sich dann die Kette der Elemente hinauf (es sei denn, die Weitergabe wird gestoppt). Wenn Sie versuchen würden, das Ereignis am Dokument, das es enthält, zu stoppen, würde es bereits an den entsprechenden Elementen des untergeordneten Dokuments ausgelöst werden.

0voto

Tejas Jadhav Punkte 11

Ja, es ist möglich, alle folgenden Dinge zu tun: Herunterladen, Drucken, Speichern, Druckbildschirm und alle Tasten der Tastatur deaktivieren, um die Sicherheit von PDF zu gewährleisten.

Folgen Sie meinem Projekt.....

1 . Installieren Sie einen Server, auf dem die PHP-Dateien ausgeführt werden können (sonst verwenden Sie einen tragbaren USB-Server). 2. Erstellen Sie den Ordner "Pdf_Files" in Ihrem Projekt und fügen Sie Ihre PDF-Dateien darin ein. 3. pdf.js Projekt herunterladen 4. schreiben Sie die folgenden Codes...

blockiert.js

$(function() //right click disabled
{
    $(this).bind('contextmenu',function()
    {
        alert("Function disabled");
        return false;
    })
});

function copyToClipboard() {
  var aux = document.createElement("input");
  aux.setAttribute("value", "Function Disabled.....");
  document.body.appendChild(aux);
  aux.select();
  document.execCommand("copy");
  document.body.removeChild(aux);
  alert("Print screen disabled.");
}

function blockPrint() {
  alert("Print is not allowed...");
}

 function PreSaveAction() { 
    alert("saving..");
 }

$(function()
{
    $(this).keyup(function(e){
      if(e.keyCode == 44 || e.keyCode == 137 ||e.KeyCode == 93 )
      //100 Save 137 SHift F10 93 RightClick 44 PrintScreen
      {
        copyToClipboard();
        return false;
      }
    })
}); 

//disable Ctrl + keys
document.onkeydown = function (e) {
    e = e || window.event;//Get event
    if (e.ctrlKey) {
        var c = e.which || e.keyCode;//Get key code
        switch (c) {
            case 83://Block Ctrl+S
            case 80 : //block Ctrl+P
            case 17 : //block Ctrl
            case 16 : //block Shift
                e.preventDefault();     
                e.stopPropagation();
                alert("key disabled");
            break;
        }
    }
};

$(window).focus(function() {
  $("body").show();
}).blur(function() {
  $("body").show();
});

function setClipBoardData(){ //override system function - make clipBoard null always
    setInterval("window.clipboardData.setData('text','')",20);
}
function blockError(){
    window.location.reload(true);
    return true;
} 

MyIframe.php

<html>
<head>
    <title> </title>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.js"></script>
    <script type="text/javascript" src="blocked.js"></script>
    <link rel="stylesheet" type="text/css" href="myStyle.css">
</head>

<body onbeforeprint="copyToClipboard()" >
<?php

    $file = './Pdf_Files/';

    if( isset($_REQUEST["path"] ) )
        $file .= $_REQUEST["path"];

    echo ' <iframe src="pdfjs/web/viewer.html?file=../../'. $file .'#toolbar=0&navpanes=0"  /> ';

?>

</body>
</html>

meinStil.css

@media print { * {  display: none; } } /* make print blank */

iframe {
    height: 100%;
    width:100%;
    padding:0;
    overflow-x: scroll;
    border:none;
    overflow-y: scroll;
}

/* disable selection highlighting, from https://stackoverflow.com/a/4407335 */
* {
    -webkit-touch-callout: none; /* iOS Safari */
    -webkit-user-select: none; /* Safari */
     -khtml-user-select: none; /* Konqueror HTML */
       -moz-user-select: none; /* Firefox */
        -ms-user-select: none; /* Internet Explorer/Edge */
            user-select: none; /* Non-prefixed version, currently
                                  supported by Chrome and Opera */
}

input[type="submit"] {  /* make submit btn as link */
    background:none!important;
    color:inherit;
    border:none; 
    padding:0!important;
    font: inherit;
    border-bottom:1px solid #444; 
    cursor: pointer;
}

test.php

<html>
<head>
<title>  </title>

<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.js"></script>
<script type="text/javascript" src="blocked.js"></script>
<link rel="stylesheet" type="text/css" href="myStyle.css">

<body>
    <form method="post" action="MyIframe.php" >

    <table align="center" width="800px" cellspacing="20px" >
<?php

    $path = './Pdf_Files/';
    $count = 0;

    if( $handler = opendir( $path ) )   
    {
        while( false !== ($file = readdir($handler)))
        {
            if( strpos($file, '.pdf' ) !== false )          
            {
                if( $count++ % 2 == 0 ) //make cloumn count 2
                    echo '<tr>';

                echo '<td> * <input type="submit" name="path" value="'. $file .'" /> </td> ';
            }
        }
        closedir($handler);
    }

?>

    </table>
</form>

</body>
</html>

Mit diesem vollständigen Projekt können Sie jede Art von Sicherheit für Ihre PDF-Datei, auch Sie können jede Taste Tastatur zum Schutz Zweck blockieren.

durchzuführende Schritte

  1. Server starten
  2. Web-Browser starten & Url eingeben -" localhost: "port"/test.php "
  3. Fügen Sie eine beliebige PDF-Datei in den Ordner "Pdf_Files" ein.
  4. Browser aktualisieren
  5. Zusätzliche Dateien werden automatisch im Browserfenster mit dem Namen .

-1voto

Jackson Punkte 1

Es ist möglich, wenn Sie eine div und in diese Div müssen Sie hinzufügen z-index .

Nach der Konfiguration von width , height fügen Sie die filter:alpha(opacity=50); opacity:0.5; Danach setzen Sie also eine Konde in Ihre Website, die den Rechtsklick blockiert...

0 Stimmen

"Ihre Website blockiert den Rechtsklick", blockiert alle Klick-Ereignisse!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X