2011-01-19 3 views
2

javascript/greasemonkey를 사용하여 제출 버튼의 배경 이미지 파일 크기를 얻고 싶습니다.greasemonkey에서 배경 이미지 파일 크기를 얻으려고합니다.

p.s. 페이지를 새로 고침하거나 이미지를 새로 호출하고 싶지 않습니다. 이미지는 부하마다 다릅니다.

는 단지 이름과 URL을마다하는 이미지가 다른되지 않은 : 그것에 대해 죄송 D
.. :/

감사합니다, 모두, 나는 내 문제의 나머지에게 자신을 해결 :)

+1

시도한 코드를 게시 할 수 있습니까? – drudge

+1

질문이 명확하지 않습니다. 버튼 컨트롤의 파일 크기를 정말로 원하십니까? 아니면 실제로 파일 크기를 업로드할까요? 전자는 브라우저 도구를 사용하여 만들 수 있습니다 (어떤 브라우저를 사용하고 있습니까?). 후자는 로컬 파일 시스템을 살펴봄으로써 얻을 수 있습니다. 둘 다 없다면이 스크립트를 다른 사람의 컴퓨터에 몰래 넣으려고하지 않는 한 GM을 사용하는 것이 중요하지 않습니까? –

+1

단추의 배경 이미지 파일 크기를 원합니다. (페이지를 다시로드하지 않고) – HiddenKnowledge

답변

2
<script type="text/javascript"> 
    function filesize (url) { 
     // http://kevin.vanzonneveld.net 
     // + original by: Enrique Gonzalez 
     // +  input by: Jani Hartikainen 
     // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) 
     // + improved by: T. Wild 
     // %  note 1: This function uses XmlHttpRequest and cannot retrieve resource from different domain. 
     // %  note 1: Synchronous so may lock up browser, mainly here for study purposes. 
     // *  example 1: filesize('http://kevin.vanzonneveld.net/pj_test_supportfile_1.htm'); 
     // *  returns 1: '3' 

     var req = this.window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest(); 
     if (!req) {throw new Error('XMLHttpRequest not supported');} 

     req.open('HEAD', url, false); 
     req.send(null); 

     if (!req.getResponseHeader) { 
      try { 
       throw new Error('No getResponseHeader!'); 
      } catch (e){ 
       return false; 
      } 
     } else if (!req.getResponseHeader('Content-Length')) { 
      try { 
       throw new Error('No Content-Length!'); 
      } catch (e2){ 
       return false; 
      } 
     } else { 
      return req.getResponseHeader('Content-Length'); 
     } 
    } 
</script> 

<style type="text/css"> 
    input[type="submit"] { 
     background-image: url("images/button_submit.gif"); 
    } 
</style> 

<body> 
    <input type="submit" value="Submit"> 
</body> 

<script type="text/javascript"> 
    document.write(filesize($('input[type="submit"]').css("background-image").match(/url\(\"(.*)\"\)/)[1])); 
</script> 
+1

아주 좋은 솔루션! – erikvold

+0

감사합니다. 덕분에 많은 도움이되었습니다 :) – HiddenKnowledge

1

는 "나는 페이지를 다시로드하거나 이미지에 새로운 통화를하고 싶지 않아요. 이미지가 각로드 다르기 때문에."

JavaScript 또는 Greasemonkey에서이 정보를 얻는 방법은 서버를 두 번째로 호출하지 않아도됩니다. 첫 번째 호출에서 프로그래밍 방식으로 추가 기능/확장 기능을 사용하려면 자체 부가 기능/확장 기능을 작성해야합니다.

그러나 지금은 백그라운드 이미지, 파일 크기를 볼 수 있습니다. 페이지를 마우스 오른쪽 버튼으로 클릭하고 페이지 정보보기 (Firefox)을 선택한 다음 미디어 탭을 클릭하십시오.

또한 Web Developer add-on을 설치할 수 있습니다. BG 이미지, 파일 크기 등의 이미지 정보를 표시 할 수 있습니다.

+0

이것은 해결책을 찾는데 도움이되었습니다. – HiddenKnowledge

관련 문제