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 함수
!-->답변 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() 를 사용하도록 하면 되지 않을까요.
답변을 작성하시기 전에 로그인 해주세요.