2011-07-05 5 views
0

거의 모든 파일로 구성된 svg 파일이 있습니다. 스크립트를 분리하여 압축기를 통해 실행할 수 있도록하고 싶습니다. 그러나이를 수행 할 방법을 찾을 수 없습니다. 도움을 주신 모든 분들께 감사드립니다. 이 같은svg 파일에서 js를 분리하는 데 문제가 있습니다

SVG 파일의 모양을

내가 lotsOfCode.js으로 "많은 코드"을 추출 할, 그리고에 SVG 파일을 변경 한 무엇
<?xml version="1.0" standalone="no"?> 
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
    "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 

<svg id="chart" 
    xmlns="http://www.w3.org/2000/svg" 
    onload="init(evt)" > 

<script type="application/ecmascript"> 
<![CDATA[ 
...lots of code 
//]]> 
</script> 
</svg> 

:

<?xml version="1.0" standalone="no"?> 
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
    "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 

<svg id="chart" 
    xmlns="http://www.w3.org/2000/svg" 
    onload="init(evt)" > 

<script type="application/ecmascript" src="lotsOfCode.js"> 
</script> 
</svg> 

그러나 이것은 작동하지 않습니다. 브라우저는 onload 'init'함수를 찾을 수 없다는 불평을합니다. 어떤 아이디어? 'init'가 'lotsOfCode.js'에 있다고 브라우저에 알리기 위해 뭔가해야합니까?

감사합니다 -

답변

3

src 대신 xlink:href를 사용해보십시오 :

<script type="text/ecmascript" xlink:href="lotsOfCode.js"></script> 

편집 : 당신은 또한 xlink 네임 스페이스를 참조해야합니다 :

<svg id="chart" 
    xmlns="http://www.w3.org/2000/svg" 
    xmlns:xlink="http://www.w3.org/1999/xlink" 
    onload="init(evt)" > 
+0

이 오류가 발생합니다. – EML

+0

@ user7 - ''요소의 네임 스페이스에 대한 참조를 추가하십시오. 내 대답을 업데이트했습니다. – gilly3

+0

훌륭함 - 그랬습니다. 감사. '응용 프로그램'을 '텍스트'로 변경 한 특별한 이유는 무엇입니까? – EML

0

Gillys 대답 외에도 스크립트 이동을 시도해 보셨습니까? 이처럼

: "스크립트에 HREF에 대한 네임 스페이스 접두사 인 XLink 정의되지 않은"

<script type="application/ecmascript" src="lotsOfCode.js"> 
</script> 
<svg id="chart" 
    xmlns="http://www.w3.org/2000/svg" 
    onload="init(evt)" > 
</svg> 
+0

아쉽게도 작동하지 않습니다. 문제는 svg 문서가 이제 svg와 스크립트라는 두 개의 최상위 요소를 포함하고 있으며 브라우저가 두 번째 태그가 문서의 끝을 초과한다고 불평합니다. – EML

+0

그것은 유효한 XML이 아니지만 svg가 html 문서에서 인라인 인 경우 아마 작동 할 것입니다. –

0
<?xml version="1.0" standalone="no"?> 
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
    "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 
<svg id="chart" 
    xmlns="http://www.w3.org/2000/svg" 
    xmlns:xlink="http://www.w3.org/1999/xlink" 
    onload="init(evt)" > 
<script type="text/ecmascript" xlink:href="lotsOfCode.js"></script> 
    <circle id='BlueCircle' cx='25' cy='25' r='20' style='fill:blue; '/> 
</svg> 
+0

중요 사항 : 후, 순차적으로 도입 : ........... .......... SVG는 개체 ......... .. 닫기 확장명이 * 인 파일을 저장하십시오. Svg – ingcapp

관련 문제