[英]Debugging Javascript in IE 8
我正在嘗試調試僅在IE8中存在的問題。 在IE 9+和chrome中都可以正常工作。 我正在使用Aspera
選擇文件,並在回調中調用自定義函數。 功能如下:
function uploadPathsRecieved(pathsArray) {
var file_path_selector = '#file_path';
...
$(file_path_selector).text(''); // (*)
...
}
在(*)行上,我得到一個錯誤,指出file_path_selector
未定義。 這對我來說並沒有多大意義,因此經過一番摸索來了解問題后,我總結了以下代碼:
function uploadPathsRecieved(pathsArray) {
var x = 3;
var y = 4;
var z = x + y;
z += 2;
$('#file_path').text(''); // (*)
...
}
get the error "file_path_selector is undefined"
at the (*) line. 當我使用此代碼運行程序時,在(*)行上出現錯誤"file_path_selector is undefined"
。 對於要嘗試解決此問題的下一步措施,我沒有任何想法。
我的直覺告訴我,正在緩存某些內容,但是如果我移動(*)行,則會出現錯誤,並且腳本窗口會反映我對其所做的更改。
這是調用我的函數的Aspera代碼:
function wrapCallbacks(callbacks) {
return wrapCallback(function() {
var args, i;
try {
args = Array.prototype.slice.call(arguments);
for ( i = 0; i < args.length; i++) {
if (isObjectAndNotNull(args[i]) && isDefined(args[i].error)) {
// error found
if (isDefined(callbacks.error)) {
callbacks.error.apply(null, args);
}
return;
}
}
// success
if (isDefined(callbacks.success)) {
callbacks.success.apply(null, args);
}
} catch (e) {
AW.utils.console.error(e.name + ": " + e.message);
AW.utils.console.trace();
}
});
}
這是我目前的全部功能:
var uploadPathsRecieved = function uploadPathsRecieved(pathsArray) {
//var file_path_selector = '#file_path';
var x = 3;
var y = 4;
var z = x + y;
z += 2;
$('#file_path').text('');
var button_selector = '#select_aspera_file';
var textbox_selector = '.aspera_textbox';
/*if (uploadPathsRecieved.fileSelecting == 'cc_file') {
file_path_selector = '#cc_file_path';
button_selector = '#select_cc_file';
textbox_selector = '.cc_aspera_textbox';
} else if (uploadPathsRecieved.fileSelecting == 'preview_file') {
file_path_selector = '#preview_file_path';
button_selector = '#select_preview_file';
textbox_selector = '.preview_aspera_textbox';
}*/
App.AsperaUploadPaths = [];
if (pathsArray.length == 1) {
$(button_selector).text("Clear File");
App.AsperaUploadPaths = pathsArray;
var error_message = pathsArray[0];
$(button_selector).parent().children(textbox_selector).text(error_message).removeClass('error');
//$(file_path_selector).attr('value', pathsArray[0]);
}
else
{
var error_message = 'Please select a single file';
$(button_selector).parent().children(textbox_selector).text(error_message).addClass('error');
}
}
解決了。 file_path是<input>
,並且IE 8及以下版本不允許您向輸入中添加文本或html。 我通過更改$(file_path_selector).text('');
修復它$(file_path_selector).text('');
到$(file_path_selector).attr('value', '');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.