div가 포함 된 foreignObject가 포함 된 SVG 요소가 있습니다. 그런 다음 js에서이 작업을 수행합니다.SVG foreignObject가 Chrome에 표시되지 않습니다.
$("#wrapper>svg>foreignObject>div").sparkline(data);
div 내에 캔버스를 만듭니다. 내가 두 브라우저의 방화범의 HTML 코드를 보면 다음과 같습니다
파이어 폭스 :
<svg>
<foreignObject width="20" height="20" x="10" y="-10">
<div>
<canvas style="display: inline-block; width: 18px; height: 19px; vertical-align: top;" width="18" height="19"></canvas>
</div>
</foreignObject>
</svg>
가 크롬 :
<svg>
<foreignobject width="20" height="20" x="10" y="-10"/>
<svg>
크롬에서조차 사업부를 보여 나던. div를 만드는 방법은 다음과 같습니다.
nodeEnter.append("foreignObject")
.attr("width", "20")
.attr("height", "20")
.attr("x", "10")
.attr("y","-10");
$("#wrapper>svg>foreignObject").append("<div></div>");
Firefox가 제대로 작동 할 것으로 기대됩니다. 그러나 크롬은 그렇지 않습니다. 누구든지 어떤 제안이 있습니까?
크롬의 firebug HTML 출력이 "foreignobject"이지만 Firefox에서 "foreignObject"가 내가 추가 한 방식을 보여준다고 생각합니다.
멋진 @Demosthenes 덕분입니다. –
Chrome의 동작이 변경되었으며 하위 요소가 이제 이어야합니다. 이상하게도 Edge는 상관하지 않습니다. 두 브라우저 모두 네임 스페이스가 필요하지 않습니다 (그러나 다른 브라우저는 여전히 까다 롭습니다). –
dav1dsm1th