문제

배경

웹 애플리케이션 내부에 연결된 인수가있는 링크 대신 포스트 양식 제출물을 사용하고 있으므로 입력에 대한 제어를 수행 할 수 있습니다.

불행히도 이는 사용자가 알고있는 빠른 바로 가기를 사용하여 컨트롤 클릭 또는 중간 클릭과 같은 새 창에서 링크를 열 수 없습니다.

문제

나는 jQuery를 사용하여 마우스 입력을 캡처하고 다양한 코드 키를 W3C DOM 마우스 이벤트 사양:

 $("span#clickspan").click( function(event) {

   buttonpress = event.button;
   ctrlpress = event.ctrlKey;

    $("#clickresult").empty();
    $("#clickresult").append("<p>Click!</p>");
    $("#clickresult").append("<p>Button # " + buttonpress + " pressed!</p>");
    if (ctrlpress) {
        $("#clickresult").append("<p>Control-click!</p>");
    }

    //form submission code would go here

    event.preventDefault();

    }
 );

제어 클릭을 이런 식으로 캡처 할 수 있으며 (Firefox 3 및 IE7에서 테스트) 마우스 버튼 #0에서 나오는 왼쪽 버튼을보고하지만 어떤 이유로이 코드는 여전히 중간 클릭을 캡처하지 않습니다. 스팬 및 마우스 오른쪽 버튼을 클릭하면 여전히 컨텍스트 메뉴가 나타납니다. 적어도 중간 클릭을 캡처하고 싶습니다.

누군가 거기에서 도울 수 있습니까?

"제어"가 의미하는 바

연결된 인수와 함께 GET 제출/링크의 문제점은 누구나 주소 표시 줄을 편집하고 무엇이든 입력 할 수 있다는 것입니다. 이미 인증 및 유효성 검사 서버 측에 대해 걱정했습니다. 그것이 내가 Post와 함께 일하고 싶은 이유가 아닙니다.

의미있는 사용자 정보 만 보여 주어야합니다. 내부 데이터베이스 ID는 그렇지 않습니다. 사용자가 의미있는 방식으로 응용 프로그램과 상호 작용하도록해야합니다. 주소 표시 줄을 임의로 편집하는 것은 그 중 하나가 아닙니다.

사람들은 항상 오타를 만듭니다. 그러나 시스템의 관점에서 볼 때 주소 표시 줄의 오타와 응용 프로그램 논리의 결함 사이에는 차이가 없으며, 방금 발생한 사람을 사용자에게 방금 발생시키는 책임을 맡기지 않겠습니다.

도움이 되었습니까?

해결책

짧은 대답? 할 수 없습니다.

긴 대답? 자바 스크립트 마우스 이벤트. 여전히 할 수 없습니다.

이것은 질문을 제기합니다 필요 게시물을 사용하거나 간단하게 사용합니다 원하다 에게? 필요한 유일한 이유는 쿼리 문자열 길이입니다. 원한다는 점에 대해 "사용자 입력 제어"를 언급합니다. 그게 정확히 무엇을 의미합니까?

입력 유효성 검사를 위해 브라우저에 의존해서는 안됩니다. 편의성으로 할 수 있지만 서버는 항상 입력을 유효하게해야합니다.

아니면 미학적 인 이유는 (즉, "더 짧은"더 좋은 "URL)?

당신은 하이퍼 링크 인 휠을 재창조하고 있습니다. 나는 단지 비생산적이며 실제 하이퍼 링크와 동일한 브라우저 지원과 호환성을 얻지 못하기 때문에 그렇게 할 좋은 이유가 있는지 확인하려고 노력하고 있습니다. 또한 작동하지 않을 것으로 예상되는 일을함으로써 사용자를 귀찮게 할 수 있습니다. 안좋다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top