포럼
HTMLDisplayHandler에 개입하려면 어떻게 해야될까요.
2014.03.19 23:05
misol님이 만드셨었던 jQuery 외부로드 애드온이 작동하질 않아 제가 만들어보려고 이리저리 애쓰고있는데요, 인덱스가 마이너스로 설정되어있어서 그런가 아니면 Context에서 loadFile로 불러와서 그런가 Context에서 unloadAllFiles로 다 풀어도 xe.js랑 여러 파일들이 아직도 생생히 살아있네요. 아오 ㅁㄴㅇㄹㅇㄴㅁㄻㄴㅇㄹ
아무래도 이렇게 된 이상(?) HTMLDisplayHandler에 애드온에서 무력개입을 해야될듯한데, 어떻게 해야 좋을까요?
댓글 16
-
XE
2014.03.19 23:19
애드온이 관여할 수 있는 범위 밖에서 jQuery를 로드하기 때문에 jquery를 unload할 수 없습니다. -
DynamicLaser
2014.03.19 23:49
그렇다면, 어떤식으로던 애드온으론 인덱스가 -로 정해진 파일들을를 포함한 JS파일목록을 불러올 수 없는건가요?
-
퍼니엑스이
2014.03.19 23:28
애드온에서 제어할 수는 없고, 자바스크립트로 jquery가 로드되기 전에 unload 하셔야 할 것 같습니다.
-
도라미
2014.03.19 23:54
음.. 그런 문제가 있었군요. 확인해봐야겠습니다.
-
DynamicLaser
2014.03.19 23:57
아무래도 다양한 생각이 들긴 하지만, 애드온으론 못만든다는거군요.. 그럼 모듈을 파야되는건가 ㅠㅠㅠㅠㅠㅠㅠㅠ
-
퍼니엑스이
2014.03.20 00:01
안타깝지만 모듈에서도 기본 css/js를 unload 할 수 없습니다.
-
DynamicLaser
2014.03.20 00:05
으악 아..안돼
-
DynamicLaser
2014.03.20 00:08
내공이 부족해서 그런가 "되겠지!" 하는데 안되네요 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ 슬프다..
다른거 개발할거나 생각해봐야겠습니다
-
GG
2014.03.20 00:21
애드온에서 컨텐츠 다 받아온 시점에서 레이아웃 초기화 시켜버리고 헤더 다시 구성해서 입력하면 안되나요?
-
KrteamENT
2014.03.20 07:16
@GG 음...좋은 방법인데 그렇게되면 레이아웃이나 컨텐츠가 로드되는데 시간이 오래걸리지 않을까요? -
CONORY
2014.03.20 09:54
unload로 제어가 안되기에 jQuery 외부로드 애드온에서도 최종결과물을 조작하는 방법을 사용했네요..
무식한(?)방법이긴하지만,
$called_position = 'before_display_content' 에서
$before_script = '<script type="text/javascript" src="/common/js/jquery.js"></script>';
$after_script = '://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js';
$output = str_replace($before_script, $after_script, $output);
으로 최종결과물을 조작하지요..
하지만, XE 1.5 부터 <script type="text/javascript" src="/common/js/jquery.js"></script>가
<script src="/common/js/jquery.js?20140226113634"></script>이런식으로 바뀌면서 동작하지않는 겁니다..
그래서 뒤에 번호붙는 건 정규식을 사용해 처리 하면 될 겁니다.
-
DynamicLaser
2014.03.20 18:36
CONORY님 감사합니다! ^^
-
misol
2014.03.20 18:35
클래스를 복제해서 조작하면 됐는데, 잘 될거에요 :)
Conory 님 방법을 쓸 수 있는데 연구해보세욤 -
DynamicLaser
2014.03.20 18:42
클래스를 복제하기에는 아무래도 지금 제 능력밖이라, Conory님 방식을 응용해야겠어요. 답변 감사합니다 ^^
-
도라미
2014.03.22 10:17
@DynamicLaser 님, 해결하시면 소스코드 공유좀 해주세요! 저도 수정해볼꺼지만... -
DynamicLaser
2014.03.22 14:45
지금 $output을 건드려도 안되는지라 곰곰히 고민중입니다 ㅠ_ㅠ