0

ユーザーが[キャンセル]ボタンをクリックしたときにファイルのアップロードを停止しようとしています。これを行うために、iframe内のトランスポートを停止することを考えています。問題はこれを正しくコーディングできることです。以下は私が達成しようとしていることのコードですが、ここでこのエラーが発生しています:

$('.upload_target').contentWindow is undefined

まず最初にこれをエラーで修正し、次に「キャンセル」ボタンをクリックするとiframe内のトランスパートを停止するように以下のコードを正しく記述するにはどうすればよいですか?

以下は、ファイルのアップロードを開始するstartImageUpload()関数です。その機能の中には、クリックされたときに「キャンセル」ボタンを処理する機能があります。

function startImageUpload(imageuploadform){


              $(".imageCancel").click(function() {
              $('.upload_target').get(0).contentwindow

              if ($('.upload_target').contentWindow.document.execCommand)
    { // IE browsers
       $('.upload_target').contentWindow.document.execCommand('Stop');
    }
else
    { // other browsers
        $('.upload_target').contentWindow.stop();
    }


          return stopImageUpload();

    });

      return true;
}

以下は、iframeで構成されるフォームコードです。

 var $fileImage = $("<form action='imageupload.php' method='post' enctype='multipart/form-data' target='upload_target' onsubmit='return startImageUpload(this);' class='imageuploadform' >" + 
    "Image File: <input name='fileImage' type='file' class='fileImage' /></label><br/><br/><label class='imagelbl'>" + 
    "<input type='submit' name='submitImageBtn' class='sbtnimage' value='Upload' /></label>" + 
    "</p><p class='imagef1_cancel' align='center'><label>" + 
    "<input type='button' name='imageCancel' class='imageCancel' value='Cancel' /></label></p>" + 
    "<iframe class='upload_target' name='upload_target' src='#' style='width:0;height:0;border:0px;solid;#fff;'></iframe></form>"); 
4

1 に答える 1

1

$('.upload_target') そのクラスのすべての要素を含むjQueryオブジェクトを返すため、contentWindowプロパティは存在しません

$(.upload_target:eq(0)').get()(最初に1つだけを想定した)要素自体を返し、次にcontentWindowが存在する必要があります

または$(.upload_target')[0]、単一の要素をターゲットにしているが、IDの方がパフォーマンスが高い場合

于 2012-05-03T16:45:34.667 に答える