문제

IE Webbrowser 컨트롤을 포함시키는 Windows 앱이 있으며 컨텐츠를 제공하기 위해 로컬 웹 서버를 실행합니다. 로드 한 URL은 응용 프로그램 내에서만 의미가 있으며 응용 프로그램 종료 후에는 유효하지 않습니다. 그들은 결코 사용자에게 보이지 않습니다. 그들은 다음과 같이 보입니다.

http://127.0.0.1:1234/something.html

어디 1234 해당 세션의 임의 포트 번호입니다.

그러나이 URL은 IE 브라우저의 주소 막대 이력이 나타납니다. 인터넷 익스플로러의 주소 표시 줄에 "1"을 입력하면 모든 URL과 함께 드롭 다운이 나타납니다. 그들은 그 맥락에서 쓸모가 없습니다.

그래서 내 질문은 : 내 URL이 해당 드롭 다운 오염을 방지하는 방법은 무엇입니까?

조금 더 많은 정보 : 사용 사용 URL을로드하고 있습니다. window.location.href = URL, Navigate 방법 navNoHistory 옵션이 아닙니다 (그리고 어쨌든 뒷면/전방 기록을 말합니다).

또한 사실을 사용한 후 URL을 삭제하려고 시도했습니다. IUrlHistoryStg::DeleteUrl(), 그러나 효과가 없지만 (성공을 반환하지만 효과가 없습니다) - 해당 작업에 대한 팁은 감사하게받을 것입니다.

도움이 되었습니까?

해결책

이제이 작업을 수행했습니다 IUrlHistoryStg::DeleteUrl() - 컨트롤에 URL을로드하도록 요청한 직후에 전화하면 작동하지 않습니다. 컨트롤이 문서로드가 완료 될 때까지 컨트롤이 히스토리에 URL을 추가하지 않기 때문입니다.

전화로 IUrlHistoryStg::DeleteUrl() 나중에, 나는 역사에서 URL을 제거 할 수 있습니다.

나는 여전히 그들이 처음에 거기에 도착하지 않았다.

다른 팁

나의 원래 대답은 당신이 원하는 것과 정반대였습니다.

나는 당신이 겪고있는 것을 복제 할 수 없지만 브라우저 컨트롤을 사용하지 않습니다.

HTML 또는 숨겨진 프레임/iframe에 스크립트를 추가하고 호출을 래퍼하여 브라우저가 래퍼 스크립트에서 실행합니다.

스크립트 기반 Navigates는 역사에 들어가서는 안되며, 원래 답변에서 Click () 이벤트 트리거를 사용하여 실제로 기록 항목을 추가 할 수있는 방법을 제시하는 데 시간이 걸렸습니다.

<script>
    function GoTo(url) {
        location = url;
    }
</script>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top