2013-10-21 4 views
0

비슷한 스레드를 살펴본 결과 아무 것도 쓸모가 없었습니다.페이지로드 후 firefox에서 DOM 요소의 다시 그리기/다시 칠하기를 강요합니다

페이지가로드 된 후 이미지를 바꾸려면 새 위치가 있으면 src 속성을 변경해야합니다. 이미지를 로컬 이미지로 바꾸고 싶습니다.

을 통해 src 속성을 직접 변경합니다. img.src = urlString; 또는 setAttribute() 메서드를 사용하면 src가 설정되지만로드 된 페이지의 이미지는 다시 그려지지 않습니다. 내가 사용했다 window.alert (img.src);을 사용하여 src 속성이 실제로 변경되었는지 확인하십시오.

다음 코드 스 니펫을 here에서 사용하여 강제로 다시 그리기했습니다.

var n = document.createTextNode(' '); 
var disp = img.style.display; 
img.appendChild(n); 
img.style.display = 'none'; 

img.style.display = disp; 
n.parentNode.removeChild(n); 

아무 것도 작동하지 않는 것 같습니다. 페이지가로드되었거나 로컬 파일을 사용하고 있기 때문에 페이지가로드 되었습니까?

로컬 파일이 % AppData % \ temp에 있습니다. 권한 문제 일 수 있습니까? 브라우저 콘솔에서 오류가 발생하지 않습니다. 누군가가 양식을 입력하고 데이터를 잃어 버릴 수 있기 때문에 전체 페이지를 새로 고치고 싶지 않습니다.

모든 의견을 보내 주시면 감사하겠습니다. 감사.

편집 : 약간의 설명. 확장자를 사용하여 모든 창에 스크립트를 삽입합니다. 창 하나가 페이지를로드하고 나면 처리를 위해 이미지를 다른 스크립트로 보내면 스크립트는 새 파일 위치가있는 창에 이벤트를 반환합니다. 이벤트가 잡히면 함수가 호출되어 특정 이미지의 src 특성을 변경합니다. 모든 것을 검사했지만 src는 변경되었지만 브라우저는 새 이미지를 표시하지 않습니다.

다른 편집 : 파일 : /// pathtofile/을 사용하여 주소 표시 줄에서 파일에 액세스 할 수 있으므로 권한 문제가없는 것 같습니다. 외부 URL (예 : : http : //)은 페이지로드 후에도 작동하는 것으로 보입니다. 로컬 URL로 어떻게 작동시킬 수 있습니까?

+0

문서 흐름이 중단되지 않으면 이전 이미지를 삭제하고 (DOM 노드 삭제) 이전 이미지를 대체 할 수 있습니다 새로운 것과. – Zemljoradnik

+0

나는 확신 할 수 없다. 나는 어떤 페이지가 나왔는지 알 수 없으므로 어떤 종류의 피해가 있는지 알지 못합니다. –

답변

1

Firefox는 신뢰할 수없는 페이지가 어떤 식 으로든 file:// 개의 URI에서 데이터를로드하는 것을 허용하지 않습니다. 여기에는 file:// URI의 이미지로드가 포함됩니다.

왜 페이지가 리눅스 또는 Mac에서 <img src="file:///dev/tty"> 일 경우 어떻게되는지 생각해보십시오. file:///c:/con 등을 읽으려고하면 일부 Windows 버전에서도 유사한 문제가 발생합니다 ...

+0

답장을 보내 주셔서 감사합니다. 웹 서버를 사용하여 이미지를 변경하려고합니다. –

관련 문제