2010-12-02 4 views
1

나는 해결책을 찾기 위해 오랜 시간 동안 googled했지만 결국 실패했습니다.jQuery를 사용하여 CSS를 삽입 한 후로드 된 배경 이미지를 감지하는 방법

내가 jQuery를 lib 디렉토리로 작성된 자바 스크립트 코드를 가지고 :

여기 아래에있는 내 세부 문제가 온다.

$('<link id="userCSS" rel="stylesheet" href="'+link+'" type="text/css" charset="utf-8">').insertAfter("title"); 

다른 곳에서 CSS 파일을 동적으로로드한다는 것을 알 수 있습니다.

그리고 누군가의 서버에 의해 생성 된 파일은 사람 다르기 때문에 다음,이 같은 임의의 CSS 세그먼트가있을 수 있습니다

body,html { 
    background:#000 url(http://i43.tinypic.com/xxxx.jpg) top left no-repeat; 
    font-family:Arial,Verdana,sans-serif; 
    font-size:12px; 
} 

그래서, 여기에 문제가 온다! 배경 이미지가로드 될 때 onload 이벤트를 트리거 할 수 있으면 좋지만 희망이없는 모든 방법을 시도했습니다.

누구나 이와 관련하여 몇 가지 관련 경험이 있고 저에게 도움을 줄 수 있습니까? 감사합니다 :]

+1

무엇을이 목표로 달성하려고합니까? 배경 이미지에 대한 이벤트는 없지만 다른 것을 제안하는 목적을 알아야합니다. – roryf

+0

설명하기가 조금 어렵습니다! 서버는 각 사용자에 대해 사용자 정의 된 CSS를 리턴 할 것이기 때문에이 사용자가 자신의/사용자 정의 된 CSS를 가지고 있는지 여부를 확인하기 위해이 CSS를 내부에 포함시켜야합니다! 그렇지 않다면이 사용자에 대한 내 자신의 배경 이미지를 설정합니다. 그렇지 않으면 사용자 정의 배경 이미지를 대신 사용하게됩니다. – EragonJ

답변

1

예제 코드는 없지만 내가 제안 할 수있는 최선의 방법은 괄호 안에 전체 URL을 추출한 다음 이미지 개체를 만들고 해당 URL의 소스를 설정 한 다음 원하는 모든 작업을 onload에 바인딩하는 것입니다. 그 이미지를. 나는 100 % 효과가있는 것은 아니지만 배경과 새 이미지 객체에 대해 이미지가 한 번만 다운로드되어 정확한 시간에 이벤트가 실행된다고 생각합니다.

이미지 객체를 만들기 전에 백그라운드 이미지가 다운로드되는 경우를 대비하여 event.special.load plugin을 사용해야 할 수도 있습니다. 이런 일이 발생하면 캐시에서 onload 이벤트가 올바르게 처리되거나 처리되지 않을 수 있기 때문입니다.

+0

Hi Mitch, XHR을 사용하여 전체 파일을 가져 와서 텍스트를 처리하여 배경 이미지 소스를 얻을 수 있습니다. 그러나 나는 여전히 그것을 달성하고 감사하는 다른 방법을 찾고있다.] – EragonJ

+0

이미지가 항상 body 태그에 있다는 것을 안다면 css를 삽입 한 후 매 150ms마다 .css ("backgroundImage")를 확인할 수있다. 돔에 시트. 변경되면 스타일이 적용되었으며 .css ("backgroundImage")를 사용하여 새 배경을 추출 할 수 있습니다. 그런 다음 새 이미지 태그를 만들고 onload를 해당 이미지에 바인딩하십시오. –

+0

okok thitch Mitch! 너는 나에게 시도 할 새로운 길을 줘! thanks : P – EragonJ

관련 문제