2012-07-27 2 views
2

WPF 페이지에 WebBrowser 컨트롤이 있습니다. WebBrowser 컨트롤에로드 된 HTML 페이지는 WPF 응용 프로그램의 이미지를 표시합니다. WPF 페이지에서 HTML 페이지로 자바 스크립트 콜백을 사용하여 페이지가 이미지가 변경되었음을 알리고 이미지를 다시로드합니다. 브라우저에서 태그의 기본 파일이 변경되었음을 알리는 방법을 찾지 못하는 것 같습니다.<img/>을 어떻게 다시로드합니까?

img를 어떻게 다시로드하나요?

난 그냥 src 속성을 변경 시도하고 나는이 같은도 피곤 일을했습니다 :

  $("#img1").attr("src", ""); 
      $("#img2").attr("src", ""); 

      $("#img1").attr("src", image1); 
      $("#img2").attr("src", image2); 

기능이 표시되는 이미지라고 처음. 이미지가 변경되고 기능이 다시 호출되면 원본 이미지가 유지됩니다.

답변

6

원본을 임의 쿼리 부분으로 설정합니다. 예 : img.png? 0001 등등

이 트릭을 할 때마다 모든 호출에 새로운 URL이 생기며 브라우저 컨트롤이 항목을 캐스팅하지 못하게합니다.

+6

저는 현재 타임 스탬프를 사용하는 것을 선호합니다 - 무작위보다 더 신뢰할 수 있습니다. –

+1

당신이 옳은 선택입니다 :-) – rekire

+0

작동합니다. 도와 주셔서 감사합니다. – tzerb

3

고유 한 쿼리 문자열 매개 변수를 전달하면 이미지가 강제로 다시로드됩니다. 많은 사이트 및 라이브러리 (example)는 자원의 새로운 사본이 표시되어 있는지 확인하기 위해이 기술을 사용

$("#img1").attr("src", image1 + '?_=' + new Date().getTime()); 
$("#img2").attr("src", image2 + '?_=' + new Date().getTime()); 

당신은 당신의 image1 또는 image2 링크가 이미의 QueryStrings이있는 경우 추가 로직을 추가해야합니다.

+0

'image1 = image1.substring (0, image1.indexOf ('?'))'이 트릭을해야합니다. – Blazemonger

+0

@Blazemonger 개인적으로'indexOf ('?')'를 조건으로하는 3 차 진술을 선호하지만, 둘 다 똑같은 것을 성취합니다. – jbabey

관련 문제