我已經創建了一個使用raphaeljs庫繪製各種SVG元素的頁面,但我在Safari中遇到了一些問題。Safari嵌入式SVG文檔類型
我正在繪製圖像並使用剪切路徑來遮罩某些區域。用戶可以點擊這些圖像「通過」來放置在後面的其他圖像。
這可以在firefox和chrome甚至IE中按預期工作。但在Safari中,我無法點擊圖片。剪切路徑在Safari中似乎不起作用。
我通過this question發現,Safari的內容類型必須設置爲「application/xhtml + xml」,因爲它不使用html5解析器。
我試過的建議把這個在我的頁面的頂部...
<?php
header('Content-type: application/xhtml+xml');
?>
...但瀏覽器只是輸出HTML文件。
我只是想知道我需要什麼的doctype,讓Safari正確繪製嵌入式SVG,如Chrome和Firefox?
這是我怎麼拉我的SVG圖像,並且在鍍鉻正常工作和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);
}
我使用raphaeljs設置畫布和使用上述函數來繪製,它的工作原理除非你不能通過剪輯路徑元素點擊後面。所以內聯SVG在Safari中不完全支持。謝謝您的幫助 – michael 2011-06-17 08:28:25