include 시킨 자리 위치 변동 원인 학문적 궁금증? 채택완료
G54 이상 버전에서, 위 링크의 설명대로 alarm.php를 앞에 인클루드 시키면,
alarm.php의 소스(아래참고)들이 기존 add_javascript() 함수로 인클루드시키는 스크립트보다 위로 올라가
(즉, 아래 소스들이 jquery-1.12.4.min.js 보다 앞에 인클루드 되어]
jQuery 관련 기능이 먹통이 됩니다.
인클루드 시킨 자리인 바로 앞에 정상적으로 인클루드 시키려면 어떻게 해야 할까요?
alarm.php 파일의 CSS 및 JS를 add_ 형식으로 변경해도 나머지 소스들이 위로 올라가 제대로 작동 않더라구요.
PS. alarm.php 소스
</p>
<p><?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";
?></p>
<p><?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'])
{
?></p>
<p><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 } ?></p>
<p>
PS. add_javascript 함수
답변 2개
add_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', $js[1]);
답변에 대한 댓글 3개
신경써 답변주셔서 감사합니다.
감사합니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
alarm.php에서는
</script>
대신에
</script 공백>
이렇게 하면 어떨까요