2011-02-08 10 views
3

リンクをクリックするようにしたいと思っています。ファイルを含む入力フィールドが開きます。しかし、ブラウザがそれをサポートしていれば、これが起こりたいだけです。 in this answerが指摘したように、クロムはこれをサポートしています。 Firefox 3.6ではなく、Firefox 4 shouldです。アップロードフィールドが「クリック」を受け入れるかどうかのテスト

JavaScriptの機能のサポートを頻繁にテストできますが、この機能をテストする方法は不明です。

私が何を意味しているかを知りたい場合は、リンクをクリックしたときの機能を以下のコードに示します。 play with this on my pageでもかまいません。

<html lang="en"> 
    <head> 
     <meta charset="utf-8"> 
     <title>Upload Field Click Test</title> 
     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script> 
     <script type="text/javascript"> 
     $(function() { 
      var clicker = document.getElementById('clicker'); 
      var uploader = document.getElementById('uploader'); 
      clicker.addEventListener("click", function(e) { 
       uploader.click(); 
       e.preventDefault(); 
      }, false); 
     }); 
     </script> 
    </head> 
    <body> 
     <form> 
      <input type="file" id="uploader"> 
     </form> 
     <a href="#" id="clicker">Should click the uploader</a> 
    </body> 
</html> 

動作しないもの:!

  1. テストuploader.click
  2. uploader.click場合(見)は、あなたが動的に書き込むためにjQueryのを使用することができ例外

答えて

0

をスローしますHTMLを適切な場所の文書に挿入する

$("#mylinkID").after('<a href=" ">Whatever</a>');` 

となり、リンクはID「mylinkID」を含む要素の後に追加されます。 JSのサポートがない場合、リンクは表示されません。

+0

私はブラウザがjavascriptを持っているかどうかを検出したくありません。私は検出したい "入力[タイプ="ファイル "]のクリック機能を呼び出すと、ブラウザはファイルのアップロードダイアログを開きますか? User-Agentを盗聴することなくやります。 – cowsandmilk

+0

私は主な問題はJQueryではない "addeventlistener"メソッドだと推測しています。私はあなたがJQuery相当物を必要とするだろうと推測しています。これに関する詳細は、このスレッドの[http://stackoverflow.com/questions/2398099/jquery-equivalent-of-javascripts-addeventlistener-method [/ link]を参照してください。 – StrangeDucks

関連する問題