1

ポップアップ モーダル ウィンドウで IFrame を使用して、AJAX のようなファイル アップローダを作成しようとしています。スクリプトがターゲット ページで実行され、ファイルがアップロードされると、モーダル ウィンドウに次のコードで応答が返されます。

function stopUpload(success) {
        var result = '';
        if (success == 0) {
            document.getElementById('result').innerHTML = '<div class="msg-error" style="width:492px;">There was an error during file upload!<\/div><br/>';
        } else if (success == 2) {
            document.getElementById('result').innerHTML = '<div class="msg-error" style="width:492px;">ERROR! Please upload a document with the following file types....<br/><br/>txt, doc, xls, rtf, ppt, pdf, jpg, jpeg, gif, png, xlsx, docx, png, pps, ppsx, ppt<\/div><br/>';
        } else {
            var dom_string = success;
            var dom_target = window.top.document.getElementById('table_body');
            dom_target.innerHTML = dom_string;
            document.getElementById('result').innerHTML = '<div class="msg-status" style="width:492px;">The file was uploaded successfully!<\/div><br/>';
        }
        document.getElementById('f1_upload_process').style.visibility = 'hidden';
        return true;
    }

上記のコードは、モーダル ウィンドウに成功メッセージを表示し、モーダル ウィンドウの背後にある親ページのファイル リストを更新して、ユーザーが別のアップロードを処理できるようにすることを想定しています。FF 18 ではすべてがうまく機能しますが、IE 9 では開発者ツールバーに次のエラーがスローされます。

SCRIPT600: この操作のターゲット要素が無効です。

dom_target.innerHTML = dom_string;

table_body はターゲットの ID であり、Firefox でうまく機能するため、私は混乱しています。何か案は?髪を引っ張っています。

4

1 に答える 1

2

MSDN から:

innerHTML プロパティは、col、colGroup、frameSet、html、head、style、table、tBody、tFoot、tHead、title、および tr オブジェクトでは読み取り専用です。

DOM API を使用して行うことも、代わりに全体を置き換えることもできます<table>

于 2013-01-20T14:18:05.193 に答える