IE 7/8でUploadifyが原因のエラー
-
06-07-2019 - |
質問
何らかの理由でuploadifyでページを読み込むと、IE 8でこれが表示されます ウェブページエラーの詳細
ユーザーエージェント:Mozilla / 4.0(互換性あり; MSIE 8.0; Windows NT 6.1; Trident / 4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0 ) タイムスタンプ:日、2009年11月29日01:36:52 UTC
メッセージ:オブジェクトはこのプロパティまたはメソッドをサポートしていません ライン:26 Char:86 コード:0 URI:jquery.uploadify.v2.1.0.min.js
これはFFおよびSafari Chromeで正常に動作します
マイjquery
$("#upload").uploadify({
uploader: '/assets/scripts/uploadify/uploadify.swf',
script: '/post/images/uploadify',
cancelImg: '/assets/scripts/uploadify/cancel.png',
buttonImg: '/assets/images/upload_button.png',
folder: '/public/tmp',
scriptAccess: 'always',
width: 175,
height: 46,
wmode: 'transparent',
multi: false,
auto:true,
sizeLimit: '2000000',
buttonText: ' Upload Profile Image',
'onError' : function (a, b, c, d) {
if (d.status == 404)
alert('Could not find upload script.');
else if (d.type === "HTTP")
alert('error '+d.type+": "+d.status);
else if (d.type ==="File Size")
alert(c.name+' '+d.type+' Limit: Your file size is too big, our max is 100Kb');
else
alert('error '+d.type+": "+d.text);
},
'onComplete' : function (event, queueID, fileObj, response, data) {
$.ajax({type: "POST",url:"/members/image_preview",data:{filearray: response},success: function(info){
$("#target").html(info);
},complete: crop});
}
//fileExt: '.jpg,.jpeg,.png,.bmp,.gif'
});
これは国連最小版の行です:
jQuery(this).each(function(){
settings = jQuery.extend({
id : jQuery(this).attr('id'), // The ID of the object being Uploadified
uploader : 'uploadify.swf', // The path to the uploadify swf file
script : 'uploadify.php', // The path to the uploadify backend upload script
expressInstall : null, // The path to the express install swf file
folder : '', // The path to the upload folder
height : 30, // The height of the flash button
width : 110, // The width of the flash button
cancelImg : 'cancel.png', // The path to the cancel image for the default file queue item container
wmode : 'opaque', // The wmode of the flash file
scriptAccess : 'sameDomain', // Set to "always" to allow script access across domains
fileDataName : 'Filedata', // The name of the file collection object in the backend upload script
method : 'POST', // The method for sending variables to the backend upload script
queueSizeLimit : 999, // The maximum size of the file queue
simUploadLimit : 1, // The number of simultaneous uploads allowed
queueID : false, // The optional ID of the queue container
displayData : 'percentage', // Set to "speed" to show the upload speed in the default queue item
onInit : function() {}, // Function to run when uploadify is initialized
onSelect : function() {}, // Function to run when a file is selected
onQueueFull : function() {}, // Function to run when the queue reaches capacity
onCheck : function() {}, // Function to run when script checks for duplicate files on the server
onCancel : function() {}, // Function to run when an item is cleared from the queue
onError : function() {}, // Function to run when an upload item returns an error
onProgress : function() {}, // Function to run each time the upload progress is updated
onComplete : function() {}, // Function to run when an upload is completed
onAllComplete : function() {} // Function to run when all uploads are completed
}, options);
解決
この問題に直面しました。これは、Uploadifyがその行で「設定」を使用し、htmlに「settings」という名前のIDがある場合、UploadifyがIEで例外をスローするために発生します。 FFやSafariはこの問題を無視しているようです。したがって、Uploadifyコンポーネントを含むページのhtmlに「settings」という名前のIDを保持しないでください。うまくいくはずです:)
他のヒント
IEで発見したことは、swfファイルの初期化時にアップロード領域が非表示の場合、uploadify onOpen()イベントが発生せず、ファイルのアップロードが開始されないことです。そのため、トラックのアップロード先のdivがcssで非表示になっていないことを確認してください。これは、uploadify関数の開始時に表示されるか、アセット領域divが表示されるまで関数を起動しないでください。
最小化されていないバージョンのJqueryを使用して、問題の行を投稿できますか?そうすることで、誰かがエラーメッセージを理解できるようになります。
問題は、IEにFlashバージョンがインストールされていないことです。
変数 flashInstalled
が false
であるため、uploadify-scriptが変数 swfuploadify
を初期化しないようにします。
ブラウザにFlashバージョンをインストールするか、HTML5バージョンを使用します
IEで Object expected
などの別のエラーが発生した場合、次のページで解決する必要があります:リンク