2012-01-27 5 views
0

私はこの1人の男と時間を過ごしています。彼らがページを離れてすでにファイルをアップロードしようとしていると誰かに警告しようとしています。面倒なところは、提出しても警告しないようにしたいということです。これは奇妙な部分です。私はクロームで動作させるコードですが、他のすべてのブラウザはそれを気に入らないのです。これはプラグインの一部なので、コードの一部を無視するだけです。jQuery beforeunloadをfirefoxのサブミットでキャンセルします

function cleanFiles(obj){ 
    var $obj = $(obj), 
    $jForm = $obj.parents("form"); 
    $jForm.find("input[type=button]:last").not($obj).bind("click.save", function(event){ 
    $(window).unbind('beforeunload.cleanFile unload.removeFiles'); 
    }); 
    $(window).bind('beforeunload.cleanFile', function(event){ 
    var localSettings = $.extend({}, settings), 
    filesList = ""; 
    $("input[type=hidden].fileFieldLists").each(function(){ 
    var $obj = $(this); 
    filesList += ($obj.val() || ""); 
    }); 
    if(filesList.length){ 
    return localSettings.defaultLeaveMessage; 
    } 
    $(window).bind('unload.removeFiles', function(event){ 
    var filesList = []; 
    $("input[type=hidden].fileFieldLists").each(function(){ 
     var $obj = $(this), 
     localSettings = $.extend({}, settings, $obj.next().data()), 
     fieldValues = ($obj.val().indexOf("*") ? $obj.val().split("*") : $obj.val()), 
     fieldValuesCnt = fieldValues.length; 
     for(var i = 0; i < fieldValuesCnt; i++){ 
     filesList.push(localSettings.filepath + fieldValues[i]); 
     } 
    }); 
    if(filesList.length){ 
     deleteFiles(filesList.join(","), false); 
    } 
    }); 
    }); 
    } 
+2

1スペースインデントは読みにくいです。 – ThiefMaster

+0

'cleanFiles'メソッドは何ですか? – ShankarSangoli

+0

ありがとうございますが、より速くコンパイルします。誰もが何か役に立つと思っていますか? – msantoro12

答えて

0

私はそれを見つけました。 IEとFirefoxでは、「beforeUnload」イベントの後に「click」イベントが発生するようです。しかし、 "mouseup"イベントは両方の前に発生し、私の解決策でした。私は、「クリック」など

$jForm.find("input[type=button]:last").not($obj).bind("click.save mouseup.save", function(event){ 

ように「MouseUpイベント」し、それをバインドし、それは私がブラウザのために何をするのか男が一致するように...今、すべてのブラウザで動作します。すべての回答をありがとう。

関連する問題