include 시킨 자리 위치 변동 원인 학문적 궁금증?

include 시킨 자리 위치 변동 원인 학문적 궁금증?

QA

include 시킨 자리 위치 변동 원인 학문적 궁금증?

본문

G54 이상 버전에서, 위 링크의 설명대로 alarm.php를 </head> 앞에 인클루드 시키면,

alarm.php의 소스(아래참고)들이 기존 add_javascript() 함수로 인클루드시키는 스크립트보다 위로 올라가

(즉, 아래 소스들이 jquery-1.12.4.min.js 보다 앞에 인클루드 되어]

jQuery 관련 기능이 먹통이 됩니다. 

 

인클루드 시킨 자리인</head> 바로 앞에 정상적으로 인클루드 시키려면 어떻게 해야 할까요?

alarm.php 파일의 CSS 및 JS를 add_ 형식으로 변경해도 나머지 소스들이 위로 올라가 제대로 작동 않더라구요.

 

PS. alarm.php 소스


<?php
if (!defined('_GNUBOARD_')) exit; //개별 페이지 접근 불가
// 간격
//echo help('기본 60000ms, 밀리초(ms)는 천분의 1초. ex) 60초 = 60000ms');
$wset['delay'] = '60000';
$wset['delay'] = (isset($wset['delay']) && $wset['delay'] >= 60000) ? $wset['delay'] : 60000;
$alarm_url = G5_PLUGIN_URL."/alarm";
?>
<?php 
//특정 페이지에서 alarm 표시안함 
$except_alarm_page = array('memo.php',
                    'point.php',
                    'response.php',
                    'follow.php',
                    'scrap.php',
                    'mypost.php',
                    'myphoto.php',
                    'shopping.php',
                    'coupon.php',
                    'memo_view.php',
                    'memo_form.php');
if (!in_array(basename($_SERVER['PHP_SELF']), $except_alarm_page)) 
{ 
    if ($member['mb_id'])
    {        
?>
<link rel="stylesheet" href="<?php echo $alarm_url ?>/alarm.css">
<script>
var memo_alarm_url = "<?php echo $alarm_url;?>";
var audio = new Audio("<?php echo $alarm_url;?>/memo_on.mp3");  // 임의 폴더 아래에 사운드 파일을 넣고 자바스크립트 동일경로 
</script>
<script src="<?php echo $alarm_url ?>/alarm.js"></script>
<script type="text/javascript">
    $(function() {
        setInterval(function() {
            check_alarm();
        }, <?php echo $wset['delay'] ?>);
        check_alarm();
    });
</script>
<?php } ?>
<?php } ?>

 

 

PS. add_javascript 함수

https://github.com/gnuboard/gnuboard5/blob/dbc8e1676a4cd3561a74f1d756320a7d82b45bb4/lib/common.lib.php#L2530

이 질문에 댓글 쓰기 :

답변 2

add_script()가 실제 처라 되는 부분을 보니

</script> 바로 앞에 넣는 듯한데

그렇다면, head.sub.php 이외에는 모두

add_script()를 써야 한다는 거네요.

                $add_version_str = (stripos($js[1], $http_host) !== false) ? '?ver='.G5_JS_VER : '';

                $js[1] = preg_replace('#\.js([\'\"]?>)<\/script>$#i', '.js'.$add_version_str.'$1</script>', $js[1]);

 

 

alarm.php에서도 add_javascript() 를 사용하도록 하면 되지 않을까요.

본문에 적은 것처럼, alarm.php에 있는 외부스크립트 2개를 말씀하신 방법으로 처리했더니,
해당 외부스크립트만 위치 바뀌고 나머지 코드들은 위로 올라가버려서 작동 않더라구요.

답변을 작성하시기 전에 로그인 해주세요.
전체 92
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT