ERLEDIGT
JA
JA
ANTWORTEN
4
4
ZUGRIFFE
811
811
EMPFEHLEN
-
Ich benutze für eine HTML-Seite <canvas> und um IE zu unterstützen habe ich explorercanvas eingebunden. Das funktioniert soweit sehr gut.
Das lade ich im HTML viaIch will jetzt mit JavaScript prüfen, ob ich canvas tatsächlich verwenden kann. Es gibt ja noch weitere Browser die kein Canvas können.HTML-Code:<!--[if IE]><script src="js/excanvas.compiled.js"></script><![endif]-->
Das wollte ich mit JavaScript so machen:
wobei "blabla" ein canvas-Element ist.Code :1
var supported = Boolean(document.getElementById('blabla').getContext)
Allerdings funktioniert diese Prüfung nicht mehr, wenn ich explorercanvas geladen habe. Ich verstehe leider die Magie hinter explorercanvas nicht. supported ist im IE immer auf FALSE.
Trotzdem liefert mirden richtigen Context, mit dem ich zeichnen kann.Code :1
document.getElementById('blabla').getContext('2d')
Frage:
Wie kann ich jetzt prüfen, ob der Browser Canvas-Unterstützung hat oder nicht bzw. excanvas geladen wurde?
Ich habe mir überlegt dem excanvas-script eine id zu geben und dann zu prüfen, ob das script-element existiert, aber dann müsste ich in meinem JavaScript immer wissen, wie ich im HTML das Element genannt habe:
HTML-Code:<!--[if IE]><script id="explorercanvas" src="js/excanvas.compiled.js"></script><![endif]-->
Wie würdet ihr das machen?Code :1 2 3 4 5 6 7 8 9
var obj = document.getElementById('blabla'); canvasSupport = Boolean(obj.getContext); if (!canvasSupport) { var test = document.getElementById('explorercanvas'); canvasSupport = Boolean(test); }; if (canvasSupport) { // jetzt kann ich tatsächlich mit canvas zeichnen! };Geändert von Shakie (18.06.09 um 13:58 Uhr)
hihi = -h²
-
Hi,
eigentlich sollte es reichen, mit getElementById das canvas-Element zu ermitteln und anschliessend in einer if-Bedingung zu prüfen, ob ein Objekt erstellt werden konnte, das die Methode getContext kennt.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
<html> <head> <title>www.tutorials.de</title> <meta name="author" content="Quaese"> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <!--[if IE]><script src="excanvas.compiled.js" type="text/javascript"></script><![endif]--> <script type="text/javascript"> function drawIt(){ var objCanvas = document.getElementById("canvas_id"); // Falls das Objekt unterstützt wird if(objCanvas.getContext){ // ab hier nur noch Browser mit Canvas- bzw. explorercanvas-Unterstützung }else{ // Sonstiger Code } } window.onload = drawIt; </script> </head> <body> <canvas id="canvas_id"></canvas> </body> </html>
Ciao
QuaeseVielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
----
Der "Fortsetzungsroman" auf www.leuteforum.de
New kind to realize large scalable projects with jQuery: jQuery SDK
-
Hi Quaese,
deine Pruefung ob beim Objekt die getContext-Methode existiert habe ich ja selber schon in meinem Post erwaehnt, die hat bei mir aber nicht funktioniert. Trotzdem bin ich jetzt drauf gekommen, woran es liegt (dank deinem Post). Du hast drawIt in window.onload gepackt, waehrend ich jQuery und
verwendet habe.Code :1
$(document).ready(function(){drawIt();});
Seltsamer Weise funktioniert der Weg ueber jQuery und $.ready() nicht, waehrend window.onload keine Probleme macht.
Wie gesagt, das Problem besteht nur im Zusammenhang mit explorercanvas. Weiss jemand wie das Ding funktioniert? Anscheinend werden die canvas-Methoden erst zu einem spaeteren Zeitpunkt erstellt und noch nicht dann, wenn $.ready() bereits ausgefuehrt wird.
Versteht das einer, wieso ich hier jQuery nicht verwenden kann?hihi = -h²
-
Hi,
ich kann das von dir beschriebene Phänomen nur dann beobachten, wenn ich jQuery nach dem explorercanvas-Script einbinde. Sonst funktioniert es bei mir auch im ready-Event.
Ciao
QuaeseVielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
----
Der "Fortsetzungsroman" auf www.leuteforum.de
New kind to realize large scalable projects with jQuery: jQuery SDK
-
Danke!
Habe excanvas nun als letztes Script eingebunden und siehe da: alles funktioniert
hihi = -h²
Ähnliche Themen
-
Wird der UNION durch Hibernate unterstützt?
Von moujtahid1977 im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 1Letzter Beitrag: 16.11.07, 06:27 -
Frage zu Mainboard (Wird SLI unterstützt?)
Von FaNo86 im Forum HardwareAntworten: 3Letzter Beitrag: 31.10.07, 23:06 -
Dateityp wird nicht unterstützt ?
Von Hippe im Forum Videoschnitt, Videotechnik & -produktionAntworten: 3Letzter Beitrag: 25.11.05, 15:41 -
ed2k wird nicht unterstützt!?
Von marcoX im Forum Linux & UnixAntworten: 3Letzter Beitrag: 06.03.04, 14:19 -
URI-Format wird nicht unterstützt...?!
Von smax im Forum .NET ArchivAntworten: 4Letzter Beitrag: 01.09.03, 15:53





Zitieren

Login





