ã¹ã¯ãªããå¦ç
JavaScript ã使ç¨ã㦠SVG ã使ããã³æä½ããã«ã¯ãããã¤ãã®æ¹æ³ãããã¾ãã ãã®è¨äºã§ã¯ãã¤ãã³ãå¦çã対話æ©è½ãããã³åã込㿠SVG ã³ã³ãã³ãã®æä½ã«ã¤ãã¦è¨è¿°ãã¦ãã¾ãã
ãã©ã¦ã¶ã¼ã®æ¢å®ã®åä½ã evt.preventDefault() ã¡ã½ããã§ä¸æ¸ãããããã¤ãã³ããªã¹ãã¼ã element.addEventListener(event, function, useCapture) ã¨ããæ§æã§ãªãã¸ã§ã¯ãã«è¿½å ããããè¦ç´ ã®ããããã£ã svgElement.style.setProperty("fill-opacity", "0.0", "") ãªã©ã§è¨å®ãããã¨ãå¯è½ã§ãã 3 ã¤ã®å¼æ°ããã¹ã¦ããããã£ãè¨å®ãã¦ãããã¨ã«æ³¨æãã¦ãã ããã
ã¤ãã³ãã³ã¼ãã®æ¢å®ã®æåãé²ã
ãã©ãã°ï¼ããããã®ã³ã¼ããæ¸ãã¦ããã¨ããã¼ã¸ã®ããã¹ãããã©ãã°ä¸ã«èª¤ã£ã¦ä»éçã«é¸æãã¦ãã¾ããã¨ãããã¾ãããããã¯èªåã®ã³ã¼ãã®ä¸ã§ããã¯ã¹ãã¼ã¹ãã¼ã使ãããå ´åãããã¯ã¹ãã¼ã¹ãã¼ãæ¼ä¸ããã¨ãã«åã®ãã¼ã¸ã¸æ»ãã¨ããããã©ã¦ã¶ã¼ã®æ¢å®ã®æ¯ãèãã䏿¸ãããããªãã§ãããããã®ãããªãã¨ã¯ã evt.preventDefault() ã¡ã½ããã§å®ç¾ãããã¨ãã§ãã¾ãã
ãªãã¸ã§ã¯ãã« eventListener ã使ã
addEventListener() ã removeEventListener() ã¯ã対話ç㪠SVG ãæ¸ãã¨ãã¨ã¦ãæå¹ã§ãããããã®ã¡ã½ããã®ç¬¬ 2 弿°ã¨ãã¦ã handleEvent ã¤ã³ã¿ã¼ãã§ã¤ã¹ãå®è£
ãããªãã¸ã§ã¯ããæ¸¡ããã¨ãã§ãã¾ãã
function myRect(x, y, w, h, message) {
this.message = message;
this.rect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
this.rect.setAttributeNS(null, "x", x);
this.rect.setAttributeNS(null, "y", y);
this.rect.setAttributeNS(null, "width", w);
this.rect.setAttributeNS(null, "height", h);
document.documentElement.appendChild(this.rect);
this.rect.addEventListener("click", this, false);
this.handleEvent = (evt) => {
switch (evt.type) {
case "click":
alert(this.message);
break;
}
};
}
ææ¸éã®ã¹ã¯ãªããå¦ç - åã込㿠SVG ã®åç §
HTML å
ã§ SVG ã使ç¨ããå ´åãAdobe ã® SVG Viewer 3.0 ã¯èªåçã« svgDocument ã¨ãã SVG ææ¸ãæãã¦ã£ã³ãã¦ã®ããããã£ãå«ã¿ã¾ããããã¯ãMozilla ã®ãã¤ãã£ã SVG å®è£
ã«ã¯å½ã¦ã¯ã¾ãã¾ããããããã£ã¦ã window.svgDocument ã使ç¨ãã¦ã Mozilla ã§ã¯ãã¾ãããã¾ããããã®ä»£ããã«ã
const svgDoc = document.embeds["name_of_svg"].getSVGDocument();
ã使ç¨ãã¦åãè¾¼ã¾ãã SVG ææ¸ã®åç §ãåå¾ãããã¨ãã§ãã¾ãã
SVG ææ¸ã表ã Document ã«ã¢ã¯ã»ã¹ããã«ã¯ã以ä¸ã®ããã« HTMLIFrameElement.contentDocument ï¼ææ¸ã <iframe> ã§è¡¨ç¾ããã¦ããå ´åï¼ã¾ã㯠HTMLObjectElement.contentDocument ï¼ææ¸ã <object> è¦ç´ ã§è¡¨ç¾ããã¦ããå ´åï¼ã«æ³¨ç®ããã¨ããã§ãããã
const svgDoc = document.getElementById("iframe_element").contentDocument;
ããã«ã<iframe>, <embed>, <object> ã®åè¦ç´ 㯠getSVGDocument() ã¨ããã¡ã½ãããæä¾ãã¦ãããè¦ç´ ã®åã込㿠SVG ã表ã XMLDocument ã¾ãã¯è¦ç´ ã SVG ææ¸ã表ããªãå ´åã«ã¯ null ãè¿ãã¾ãã
ã¾ãã document.getElementById("svg_elem_name").getSVGDocument() ãç¨ãã¦ãåãçµæãå¾ããã¨ãã§ãã¾ãã
ã¡ã¢:
SVGDocument ã¤ã³ã¿ã¼ãã§ã¤ã¹ã«è¨åãã¦ããããã¥ã¡ã³ããè¦ããããã¨ãããã¾ãã SVG 2 ããåã¯ã SVG ææ¸ã¯ãã®ã¤ã³ã¿ã¼ãã§ã¤ã¹ã使ã£ã¦è¡¨ç¾ããã¦ãã¾ãããããããç¾å¨ã§ã¯ SVG ææ¸ã¯ä»£ããã« XMLDocument ã¤ã³ã¿ã¼ãã§ã¤ã¹ãç¨ãã¦è¡¨ç¾ããã¦ãã¾ãã
ææ¸ãã¾ãããã¹ã¯ãªããå¦ç - JavaScript 颿°ã®å¼ã³åºã
HTML ææ¸ã«åãè¾¼ã¾ãã SVG ãã¡ã¤ã«ãã HTML ãã¡ã¤ã«ã®ä¸ã«ãã JavaScript 颿°ãå¼ã³åºãã¨ãããã®é¢æ°ãåç
§ããã«ã¯ parent.functionName() ã使ãã¹ãã§ããAdobe SVG viewer ãã©ã°ã¤ã³ã¯ functionName() ã®å©ç¨ã許å¯ãã¦ãã¾ããããã®ãããªãã¨ãè¡ãã«ã¯é©ãã¦ãã¾ããã
ã¡ã¢:
SVG wiki ã«ããã¨ã JavaScript ã®å¤æ° "parent" 㯠Adobe ã® SVG ãã¼ã¸ã§ã³ 6 ãã¬ãã¥ã¼ãã©ã°ã¤ã³ã§ã¯å£ãã¦ããã¨ã®ãã¨ã§ããåé¿çã¨ãã¦ã"parent"ã®ä»£ããã«"top"ã使ç¨ãããã¨ãææ¡ããã¦ãã¾ãããã®ãã©ã°ã¤ã³ã¯ãã¼ã¿çãªã®ã§ãããããç¡è¦ãã¦ã大ä¸å¤«ã§ãããã
æ´ãªãæ å ±ã¨ããã¤ãã®ä¾ã¯ SVG wiki inter-document scripting page ã§è¦ã¤ããã¾ãã
setProperty ã«ã¯ 3 ã¤ã®å¼æ°ããã
svgElement.style.setProperty("fill-opacity", "0.0") ã¨é¢æ°ãå¼ã³åºãã¨ã Mozilla ã§ã¯ DOMException ã SYNTAX ERR ã§çºçãã¾ãããã®æå㯠W3C ã«ãã£ã¦ DOM Level 2 Style 仿§ã®ä¸ã§å®ãããã¦ãã¾ãã setProperty 颿°ã¯ 3 ã¤ã®å¼æ°ãæã¤é¢æ°ã¨ãã¦å®ç¾©ããã¦ãã¾ããä¸è¨ã®ãã®ã¯ã 'svgElement.style.setProperty("fill-opacity", "0.0", "")' ã§ç½®ãæãããã¨ãã§ãããããæ¨æºã«æºæ ãã¦ãã¾ãã