2011-01-19 10 views
2

javascript/greasemonkeyを使用して送信ボタンの背景画像のファイルサイズを取得したいとします。greasemonkeyで背景画像filesizeを取得しようとしています

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でこの情報を取得する方法は、サーバーへの2回目の呼び出しなしにはありません。最初の呼び出しでそれをプログラムで取得するには、独自のアドオン/拡張機能を作成する必要があります。

ただし、現在、背景画像、ファイルサイズを確認できます。ページを右クリックして、ページ情報を表示(Firefox)を選択し、[メディア]タブをクリックします。

また、Web Developer add-onをインストールすることもできます。 BG画像、ファイルサイズなどの画像情報を表示できます。

+0

これは私が解決策を見つけるのを助けました。 – HiddenKnowledge

関連する問題