채택완료

하이퍼링크 지연 이동

2024-04-03 (수) 22:14:48 1,832

안녕하세요

하이퍼링크 지연 이동을 시키려고 합니다.

https://sir.kr/qa/50388

위 글을 참고 해보려 했으나 여의치 않고 다른 소스를 참고 해서

Copy
<a href="javascript:link()" ...><?php echo $row['me_name'] ?></a>
<script>
function link() {
    setTimeout(function() {
        location.href = '<?php echo $row['me_link']; ?>';
    }, 2000);
}
</script>

head.php 파일에 위와 같이 적용 해보았는데 안되네요..

2초 후에 그냥 현재 페이지가 다시 로딩이 됩니다 ㅜ

location.href = '<?php echo $row['me_link']; ?>';

이 부분에 원래 주소를 직접 입력해야 하는데 그럴 수 없으니...

$row['me_link']; 변수를 사용할 수 있는 영역인 것 같은데 아닌가요 ㅠ

도움 부탁드리겠습니다.

감사합니다.

답변 4개

채택된 답변
+20 포인트
2024-04-04 (목) 17:08:35
Copy
<a href="<?php echo $row['me_link'] ?>" class="me_link"><?php echo $row['me_name'] ?></a>
<script>
$('.me_link').on('click', function(e) {
  e.preventDefault();
  if (this.href) {
    var target = this.href;
    setTimeout(function(){
      location.href = target;
    }, 2000);
  }
});
</script>
2024-04-04 (목) 17:36:29
Copy
<a href="<?php echo $row['me_link']; ?>" id="link-<?php echo $row['me_id']; ?>">
  <?php echo $row['me_name']; ?>
</a>

<script>
function linkRedirect(id) {
  const link = document.getElementById(id);
  setTimeout(() => {
    location.href = link.href;
  }, 2000);
}

linkRedirect('link-<?php echo $row['me_id']; ?>');
</script>


아니면, 이동전에 물어보게 할 수도 있어요.

Copy
<a href="<?php echo $row['me_link']; ?>" id="link-<?php echo $row['me_id']; ?>" onclick="return confirm('링크를 이동하시겠습니까?');">
  <?php echo $row['me_name']; ?>
</a>

<script>
function linkRedirect(id) {
  const link = document.getElementById(id);
  setTimeout(() => {
    if (confirm('링크를 이동하시겠습니까?')) {
      location.href = link.href;
    }
  }, 2000);
}

linkRedirect('link-<?php echo $row['me_id']; ?>');
</script>

$row 의 값들이 각 역할에 대해 적당한 값을 가지고 있는 경우 문제없이 동작하는 소스입니다.

Copy
<?php
$row = [
    'me_name' => 'click',
    'me_link' => 'https://sir.kr'
];
?>

<a href="javascript:link()" ...><?php echo $row['me_name'] ?></a>
<script>
function link() {
    setTimeout(function() {
        location.href = '<?php echo $row['me_link']; ?>';
    }, 2000);
}
</script>
2024-04-03 (수) 22:20:28

<a href="javascript:link('<?php echo $row['me_link']; ?>')" ...><?php echo $row['me_name'] ?></a>
<script>

var link_url = "";
function link(url) {

link_url = url;
    setTimeout(function() {
        location.href = link_url;
    }, 2000);
}
</script>

답변을 작성하려면 로그인이 필요합니다.