2016-08-12 1 views
2

Ich habe kürzlich das jSignature-Plugin in einem ASP.NET Web Forms-Projekt erfolgreich verwendet. Ich versuche, einem neuen MVC4-Projekt dieselbe Funktionalität hinzuzufügen. Wenn ich versuche, die MCV-Ansicht mit der jQuery-Funktionalität im Debug-Modus auszuführen, wird der folgende Fehler aus der Datei jSignature.min.js ausgelöst:jSignature funktioniert in ASP.NET Web Forms, aber nicht in MVC4 - Warum?

"Microsoft JScript-Laufzeitfehler: Canvas-Element unterstützt nicht 2D-Kontext. jSignature kann nicht fortfahren. "

Sowohl das Web Forms-Projekt und das MVC4 Projekt von dem gleichen Client-Rechner ausgeführt werden, sowohl in der Debug-Modus, von der gleichen Instanz von Visual Studio 2010.

Ich stelle auch fest, dass in dem MVC4 Projekt, In der Fehlerliste gibt es 50 Meldungen, die sich auf Variablen beziehen, die in der Datei jSignature.min.js definiert sind.

Beispiel: Zeile 35, Spalte 56 - 'b' ist bereits definiert.

Kann mir jemand sagen, was das verursacht und was ich tun muss, damit jSignature im MVC4-Projekt funktioniert?

HMTL-Code von MVC-Ansicht wie folgt:

@{ 
    Layout = null; 
} 

<!DOCTYPE html> 

<html> 
<head> 
    <meta name="viewport" content="width=device-width" /> 
    <title>jSigTest</title> 

    <script type="text/javascript" src="../../Scripts/jquery-1.7.1.js"></script> 
    <script type="text/javascript" src="../../Scripts/jSignature.min.js"></script> 
    <script type="text/javascript"> 


     $(document).ready(function() { 
      $("#SignatureDiv").jSignature(); 
     }); 

    </script> 

</head> 
<body> 
    <div> 
     This is a jSignature Test Page. 

     <div id="SignatureDiv"> 
     </div>   
    </div> 
</body> 
</html> 
+1

beim Debuggen, verzichtet auf '.min.js'. Versuchen Sie es mit '.js und sagen Sie uns, was der Fehler ist. Zeigen Sie uns auch Ihr Implementierungs-Snippet – naveen

+0

Verwenden Sie ie7-ie8, um dies zu testen? – naveen

+0

Es gibt keine jSignature.js Datei nur eine jSignature.min.js Datei. – Childa75

Antwort

1

Dies ist kein MVC Problem ist, wird diese über nicht Ausweich Skript Referenzierung und swf begleitet. Deshalb habe ich gefragt, ob Sie IE7-IE8 verwenden.

Ausgabe:

jSignature verwendet für das Plugin-Canvas-Element. IE7-IE8 unterstützt canvas nicht und das verursacht den Fehler. Wenn man sich die source anschaut, kann man sehen diese

function initializeCanvasEmulator(canvas){ 
    if (canvas.getContext){ 
     return false 
    } else { 
     var window = canvas.ownerDocument.parentWindow 
     var FC = window.FlashCanvas ? 
      canvas.ownerDocument.parentWindow.FlashCanvas : 
      (
       typeof FlashCanvas === "undefined" ? 
       undefined : 
       FlashCanvas 
      ) 

     if (FC) { 
     //code omitted 
     } else { 
      throw new Error("Canvas element does not support 2d context. jSignature cannot proceed.") 
     } 
    } 
} 

, die in einfachen Worten, ob Leinwand unterstützt wird, sonst Prüfung für die Ausweich FC (FlashCanvas) und wenn ihr nicht führt den Fehler gefunden

Auflösung:

Dies ist, wie Sie die jSignature nennen

<!-- you load jquery somewhere above here ... --> 
<!--[if lt IE 9]> 
<script type="text/javascript" src="path/to/flashcanvas.js"></script> 
<![endif]--> 
<script src="path/to/jSignature.min.js"></script> 
<div id="signature"></div> 
<script> 
    $(document).ready(function() { 
     $("#signature").jSignature(); 
    }); 
</script> 

Sie das finden können Dateien hier: https://github.com/willowsystems/jSignature Laden Sie die Dateien herunter und Sie erhalten die Dateien aus dem lib-Ordner. Die erforderlichen Dateien

  1. flashcanvas.js
  2. flashcanvas.swf

Seien Sie sicher, dass beide Dateien im selben Ordner setzen und den Pfad richtig in script src="path/to/flashcanvas.js"

+1

Vielen Dank für Ihre Hilfe. Ich schätze das wirklich! – Childa75

Verwandte Themen