하이퍼링크 지연 이동
본문
안녕하세요
하이퍼링크 지연 이동을 시키려고 합니다.
위 글을 참고 해보려 했으나 여의치 않고 다른 소스를 참고 해서
<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
<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>
<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>
$row 의 값들이 각 역할에 대해 적당한 값을 가지고 있는 경우 문제없이 동작하는 소스입니다.
<?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>
<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>
아니면, 이동전에 물어보게 할 수도 있어요.
<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>
답변을 작성하시기 전에 로그인 해주세요.