J'ai créé une page qui dessine divers éléments SVG en utilisant la librairie raphaeljs, mais j'ai quelques problèmes avec Safari.Safari embarqué SVG doctype
Je dessine des images et j'utilise un masque pour masquer certaines zones. L'utilisateur peut ensuite cliquer sur «à travers» ces images pour les autres images placées derrière.
Cela fonctionne comme prévu dans Firefox et Chrome, et même IE. Mais dans Safari, je ne peux pas cliquer sur les images. Le chemin de détourage ne semble pas fonctionner dans Safari.
J'ai découvert grâce à this question que le type de contenu avec Safari doit être défini sur "application/xhtml + xml" car il n'utilise pas d'analyseur html5.
J'ai essayé la suggestion de mettre ce en haut de ma page ...
<?php
header('Content-type: application/xhtml+xml');
?>
... mais le navigateur envoie simplement le fichier html. Je me demandais juste quel doctype je dois faire pour que safari dessine SVG incorporé correctement, comme chrome et firefox?
Voici comment je dessine mes images SVG, et il fonctionne très bien en chrome et firefox
function myDraw(path, url, x, y, w, h, id){
//create clipPath Element
var clippath = document.createElementNS("http://www.w3.org/2000/svg","clipPath");
clippath.setAttribute("id", id);
svgcanv.appendChild(clippath);
//draw the path
var cp=paper.path(path).translate(x, y).attr({stroke: 0});
$(cp.node).appendTo('#'+id+'');
//assoc clipPath with image
var img = paper.image(url,x,y,w,h);//.attr({fill:"#111",opacity:0.7});
img.node.setAttribute("clip-path","url(#"+id+")");
img.node.setAttribute("class",id);
}
J'utilise raphaeljs pour configurer le canevas et en utilisant la fonction ci-dessus pour dessiner, cela fonctionne, sauf que vous ne pouvez pas cliquer à travers le chemin du clip pour les éléments derrière. Donc, SVG en ligne n'est pas entièrement pris en charge dans Safari. Merci pour l'aide – michael