2010-04-13 3 views
3

나는 페이지의 이미지를 갱신하려고하지만 안될를 사용하여 동일한 이름을 가진 이미지를 새로 고침 문제가 있습니다. 이미지가있는 페이지가 있으며 필요에 따라 해당 이미지를 업데이트해야합니다. 이미지를 업데이트하려면 이미지를 라이트 박스에 업로드 한 다음 라이트 박스를 닫습니다. 페이지의 이미지가 자동으로 업데이트됩니다. 이제 $ ('imageid'). attr ('src', newimage)을 시도했습니다. 저는 이전 이미지와 새로운 이미지의 이름이 동일하다는 점을 특별히 언급하고자합니다. 그리고 이것이 이것이 문제라고 생각합니다. 다른 이미지를 하드 코딩하면 라이트 박스가 닫히 자마자 나타납니다. 그러나 'src'속성에 동일한 이미지 이름을 넣어 이미지를 새로 고치려고하면 아무 일도 일어나지 않습니다. jQuery를 - ATTR ('SRC', newimage)

사람은 내가이 문제를 해결하고 업데이트 된 이미지를 표시 할 수있는 방법 나를 도울 수 있습니다.

감사합니다.

편집 : 캐시일까요?

+0

일부 코드를 게시하면 현재 진행중인 작업을 볼 수 있습니다. – dnagirl

+0

코드는 오버레이와 결합하기 때문에 약간 혼란 스럽습니다. 그럼에도 요약 된 버전은 다음과 같습니다. new AjaxUpload ('upload_button', onComplete : function (file, response) { var newimage = response; $ ('# DivId'). attr ('src', newimage); }}); – Blueboye

답변

2

src이 "foo.png"이고 src을 "foo.png"로 설정하면 할당이 브라우저에서 no-op로 최적화되었을 가능성이 높습니다. src을 ""(으)로 설정 한 다음 이름을 설정 했습니까? 그것은 변화로 등록해야합니다.

+0

예, 이미 이것을 시도했지만 이것은 작동하지 않았습니다. src를 공백으로 설정 한 다음 이미지로 다시 설정합니다. src를 공백으로 설정했지만 src를 다시 이미지로 설정하면 이전 이미지가로드됩니다. – Blueboye

+0

@Blueboye : 아, 글쎄, 그럴만 한 가치가 있었어. –

7

은 아마 더 나은 솔루션이 있습니다,하지만 당신은 단지 새로운 이미지로드를 강제로 매개 변수에 던질 수 있습니다.

예 : (newImage+"?"+(new Date()).getTime()

+0

좋은 점은'src'를 처음 지우는 것이 효과가 없다는 것이다. –

+0

네, 제가이 문제를 해결하기위한 방법이었습니다. 그러나 이것이 단지 해결책 일지 아니면 유일한 해결책인지 확실하지 않습니다. 브라우저에서 이미지를 새로 고치는 유일한 방법이 아닌 한 좀 더 명확하고 논리적 인 것을 원합니다. – Blueboye

+0

jQuery 소스를 확인하는 것이 좋습니다. 속성의 값이 같을 때 최적화를 수행 할 수 있습니다. 즉, 같은 이미지로 "다시 설정"하면 브라우저 동작이 무엇인지 확신 할 수 없습니다. 내가 브라우저 개발자 였다면 그것은 나에게 모호 할 것이다. 항상 "new Date()"비트를 추상화하는 함수를 만들 수 있습니다. –

0

이 방법은 조금 복잡 하나이지만, 단지 이미지 소스의 이름이 변경 될 수없는 경우에 유용하지만 이미지가 buttonclick에 갱신되어야에 SRC를 설정) . 이것은 브라우저에서 이미지 처리와 관련된 코드를 조작하는 데 유용합니다.

1 단계 : 용기, 예를 들어 사업부를 만듭니다.
2 단계 : 다른 HTML 파일의 태그를 유지합니다.
단계 3 : 화상 함유 iframe에서 표시 용기 내에 확인.


컨테이너의 ID가 '#image'및 이미지의 ID가 원하는 블록 내에서 다음을 "#img"및 iframe이의 ID 수 "#cont"

그런 다음 할 일하자 동일한 이름의 이미지를 새로 고침합니다. 다음은

$('#image').remove(); 
$('#cont').remove(); 
$('#img').append(' <iframe src="add.html" id="cont"></iframe> '); 

코드는 일반적으로 그의 사건 INT 구체적으로 같은 이름으로 변경하거나 이미지를 다시로드 버튼을 클릭 이벤트 내에 삽입

<div id="img"> 
 
<img id="image" src="uploads/initial_image.jpg" > 
 
</div>

아래는 새로 고칠 수있는 Iframe이있는 HTML입니다.

<img src="effects/intermediate.jpg" id="image">

이 세그먼트가 페이지에 표시되는 초기 이미지가 제거되어 있는지 확인합니다, 그리고 버튼 클릭 새로 고쳐 새로운 iframe이이 자리에

.