특정 레이아웃 요소를 쉽게 재사용하도록 설계된 ColdFusion 사용자 정의 태그 세트를 작성하고 있습니다.사용자 정의 태그에서 코드 블록을 처음 만들 때 태그를 처음 실행할 때만 실행할 수 있습니까?
<script src="commonfunctions/layouttags/enablingscript.js" type="text/javascript"></script>
: 이러한 사용자 정의 태그 작업을 생성하는 코드에 대한 위해
<cfimport prefix="layout" taglib="commonfunctions/layouttags">
<layout:fadingbox>
This text will fade in and out
</layout:fadingbox>
<layout:stockticker>
This text will scroll across the screen
</layout>
는, 자바 스크립트 파일이 필요
은과 같이 페이지에 링크 될 : 나는 다음과 같은 방식을 사용할 것사용자가 직접 태그를 포함시키는 대신 사용자 정의 태그 내부에서 스크립트를 포함하는 것을 선호합니다. 문제는 자바 스크립트 파일은 페이지 당 번만 에 한 번만 포함되어야한다는 것입니다. 처음으로이 사용자 정의 태그 중 하나를 사용한 후에는 < 스크립트 > 태그를 반복하지 않도록 동일한 페이지에서 동일한 태그에 대한 후속 호출을하고 싶습니다. ... 나는 이런 식으로 뭔가를 할 수 있다는 것을 나에게
<cfif NOT isDefined("Caller.LayoutTagInitialized")>
<script src="commonfunctions/layouttags/enablingscript.js" type="text/javascript"></script>
</cfif>
<cfset Caller.LayoutTagInitialized = 1>
을 발생 ...하지만 그것은 우아 보인다. 나는 더 좋은 방법이 있을까? 어떻게 구현할 것인가?
편집 - 명확한 설명 : 나는 이해가되지 않은 이상 쓴 경우
가 여기 더 상세한 예제 :
나는이 같은 사용자 정의 태그가있는 경우 ...
<cfif ThisTag.ExecutionMode EQ "start">
<script src="commonfunctions/layouttags/enablingscript.js" type="text/javascript"></script>
<div class="mytag">
<cfelse>
</div>
</cfif>
... 그리고 나는이 같은 같은 태그를 호출 CFML 태그를 가지고 ...
<layout:mytag>
One
</layout:mytag>
<layout:mytag>
Two
</layout:mytag>
<layout:mytag>
Three
</layout:mytag>
는 ... 내가 생성 할 다음과 같이 HTML을 원하는 :
<!-- Script included only the first time the tag is called -->
<script src="commonfunctions/layouttags/enablingscript.js" type="text/javascript"></script>
<div class="mytag">
One
</div>
<!-- No <script> tag on the second call -->
<div class="mytag">
Two
</div>
<!-- No <script> tag on the third call -->
<div class="mytag">
Three
</div>
나는 그것에 대해 알고있다. 그게 내가 말하는게 아니야. 이것은 내가 원하는 것입니다 : 여기 포함 된 스크립트 태그, layout : fadingbox> 페이딩 박스>. 만나다? –
질문이 명확하게 편집되었습니다. –
아, 무슨 뜻인지 알 겠어. 어떻게 구현했는지에 대해서는 문제가 있다고 생각하지 않습니다. 아마도 호출자 범위 대신 요청 범위를 사용 하겠지만 무엇보다 우선적 인 설정입니다. –