a링크 있는곳에 hover하면 왼쪽 하단에 주소 상태바같은게 나오는데

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
a링크 있는곳에 hover하면 왼쪽 하단에 주소 상태바같은게 나오는데

QA

a링크 있는곳에 hover하면 왼쪽 하단에 주소 상태바같은게 나오는데

답변 2

본문

a링크 있는곳에 hover하면 왼쪽 하단에 주소 상태바같은게 나오는데 이거 안나오게 할 수 없나요?

 

문제가 되는것 같은곳은 datahtml.push('<a href="'+ list_data.url +'" ' + tmp_class + '>'); 이런거 같은데

이 질문에 댓글 쓰기 :

답변 2

브라우저의 하단 링크 표시 기능은 브라우저 고유의 기능으로 설계되었으며,

기본적으로 이를 변경하거나 제거할 수는 없습니다.

 

PHP 서버를 예시로 하자면, 

로직에 a 태그를 사용하는 대신, JavaScript를 활용하여

클릭 이벤트를 처리하는 방식으로 구현하여,

실제 링크를 브라우저가 직접 렌더링하지 않도록 하면 어떨까요.

예로, PHP 서버는 클릭 시 처리될 데이터를 특정 "엔드포인트"로 POST 요청하여 처리하고,

JavaScript로 서버 응답에 따라 페이지를 동적으로 이동시키는 방식을 구현하면~

 

다시 말해, JavaScript 기반의 대체 방식을 통해

주소 표시를 우회하거나 숨기는 작업은 가능하지만,

이는 브라우저의 기본 동작을 억제하는 형태일 뿐입니다.

 

※ 그누보드의 구조를 바탕으로

js/common.js 파일에 JavaScript 코드를 추가하고,

lib/uri.lib.php에 클릭 이벤트를 처리하는 PHP 엔드포인트를 작성하여 시도해 볼까요.

*JavaScript (js/common.js)


document.addEventListener('DOMContentLoaded', () => {
    const customLinks = document.querySelectorAll('.custom-link');
    customLinks.forEach(link => {
        link.addEventListener('click', (event) => {
            event.preventDefault();
            const target = link.getAttribute('data-target');
            fetch('/ajax/redirect.php', {
                method: 'POST',
                headers: { 'Content-Type': 'application/json' },
                body: JSON.stringify({ target })
            })
            .then(response => response.json())
            .then(data => {
                if (data.success) {
                    window.location.href = data.redirect;
                } else {
                    alert('Error occurred');
                }
            });
        });
    });
});

*PHP 엔드포인트 (lib/uri.lib.php)


<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $input = json_decode(file_get_contents('php://input'), true);
    $target = $input['target'] ?? '';
    if (!empty($target) && is_valid_url($target)) {
        echo json_encode(['success' => true, 'redirect' => $target]);
    } else {
        echo json_encode(['success' => false]);
    }
}
function is_valid_url($url) {
    return filter_var($url, FILTER_VALIDATE_URL);
}
?>

*HTML 예제 (bbs/list.php)


<a href="#" class="custom-link" data-target="https://gnuchoboda.kr">Gnuchoboda</a>

 

이 방식은 브라우저의 하단 표시를 숨기기는 하지만,

네트워크 요청(개발자 도구의 네트워크 탭)에서는 링크가 여전히 노출됩니다.

따라서 이 대안이 완전한 보안 대책은 아님을 염두에 두시기 바랍니다.

 

 

브라우저의 기본 기능으로 나오는 것이 정상이고 권장됩니다.

굳이 나오지 않게 하고 싶다면 javascript onlick 처리 방법이 있습니다.


datahtml.push('<a onclick="window.location=\''+ list_data.url +'\';" style="cursor:pointer;" ' + tmp_class + '>');
답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 0
© SIRSOFT
현재 페이지 제일 처음으로