jsoup 및 coldfusion을 사용하여 여러 스크립트 태그를 결합하는 방법을 알아낼 수 없습니다. 여기에 application.cfc 페이지에 코드가 있습니다.Coldfusion JSoup가 헤드 태그의 요소를 대체합니다.
<script>
//script
</script>
<script>
//script
</script>
<script>
//script
</script>
<script>
//script
</script>
을이
<script>
//script//script//script//script
</script>
으로 자바 객체와 도움이 될 ColdFusion에서와 올바른 방향의 모든 단계를 돌려 :
<cfsavecontent variable="htmlContents">
<cfoutput>
<cfinclude template="#arguments.TargetPage#">
</cfoutput>
</cfsavecontent>
<cfscript>
jsoup = createObject("java", "org.jsoup.Jsoup");
html = jsoup.parse(htmlContents);
head = html.head();
children = head.children();
cssdata = "";
scriptdata = "";
if(ArrayLen(children)) {
for (i=1; i<ArrayLen(children); i++) {
if (children[i].tagName() EQ "style") {
returnHTML = children[i].html();
if (returnHTML NEQ "") {
cssdata = cssdata & returnHTML;
children[i].remove();
}
} else if (children[i].tagName() EQ "script") {
returnHTML = children[i].html();
if (returnHTML NEQ "") {
scriptdata = scriptdata & returnHTML;
children[i].remove();
}
}
}
}
WriteOutput(html);
</cfscript>
결과는 다음을 복용해야한다.
감사에서 데모를 사용하여 페이지 속도와 귀하의 웹 사이트에 @ 제임스 실험 할 수있다, 이것은 정확히 제가 결합하려고하는 스크립트가 coldfusion의 ajax 기능에 의해 자동 생성된다는 점을 제외하고는 꼭 필요한 것일 것입니다. 그래서 대략 300 개의 script 태그를 줄 것입니다 :' 내가 CF의 아약스 태그를 피하고 대신 jQuery의 AJAX 기능을 사용했습니다. 내가 제어 할 수없는 닫힌 CF 함수를 사용하는 것에 대해 안심하고 JS 라이브러리와 같은 나머지 JS 라이브러리가 업데이트 될 때 업데이트되지 않습니다. (예 : CF11은 2011 년부터 jQuery 1.6.1과 함께 제공됩니다.) 제가 기억한다면 ColdFusion은 생성 된 위젯의 출력을 제어하고 HEAD 섹션에서 일부를 버립니다. 당신은 CFContent에 의해 포착 될 수 없을 수도 있으며 또한 피할 수없는 이유 중 하나입니다. –
최근의 Adobe BugBase 응답에 따르면 Ajax UI 구성 요소는 CF12에서 사용되지 않을 수 있습니다. https://bugbase.adobe.com/index.cfm?event=bug&id=3043516 아약스 요청을 수행하는 다른 방법이 있습니다. CF의 ajax 구성 요소를 사용하면 Ajax를 쉽게 사용할 수 있지만 기술적 인 부채가 발생하는 가장 빠른 방법이기도합니다. 장기적으로 당신에게 더 유익 할 UI 대안이 있습니다. http://static.raymondcamden.com/cfuitherightway/ –