0

HTML コンテンツと同じページに配置したときに適切に動作するいくつかの関数を作成しましたが、関数が非常に多くなり始めたため、それらを .js ファイルに移動することにしました。現在、初期関数を呼び出すことはできません。

IE8は、関数が存在しないと言っています。リンクが正しいことを確認し、js ファイルが読み込まれていることを確認しました。初期化のトリガー イベントを (loadFile のクラスを使用して) ボタンにリンクしたので、ロードのタイミングではないことを確認するために手動でトリガーできます。私はここで何か間違っていますか?

外部スクリプトへのリンクとドキュメントの準備は次のとおりです。

//This is how we must reference external files in our configuration, 
//but this is correct, and I am certain this is not the problem.
<script src="<#=getManagedWebFileRelativePath('docAttachmentIE8.js') #>"></script>

<script type="text/javascript">
    $(document).ready(function(){          
        $('.loadFile').click(function() {                   
            initializeDocAttachments(); 
        });
    }); // END DOC Ready           
</script>

これが私のjsファイルからの抜粋です:

function initializeDocAttachments() {
    //for IE8 load this form
    var docFormHTML = "<form method='POST' id='frmUploadDoc' enctype='multipart/form-data' action=''>\
                       <input type='file' name='data' onchange='handleFileSelect(this);' id='filesInput'>&nbsp;&nbsp; Upload a file</form>";
    document.getElementById('docAttachmentControl').innerHTML = docFormHTML;               
    docLoadDocs();
}   
4

2 に答える 2

0

このフィドルにコードを入れると、あなたが持っているものは理にかなっていて機能します: http://jsfiddle.net/3PtuH/1

表示される正確なエラー メッセージは何ですか? initializeDocAttachments()関数が存在しないとIE8は言っていますか? 内部docLoadDocs()関数が存在しない可能性があると言っている可能性はありますか?

于 2013-03-02T07:07:03.593 に答える
0

ページの残りの部分がどのように構成されているかの完全なコンテキストを見なければ、完全に診断することは困難です。

私が確認することは、上記のコードの前に jquery.js が呼び出されていることを確認することです。そうしないと、後のイベントがセットアップされません。firebug を使用してコンソールをチェックし、他の JavaScript エラーが報告されているかどうかを確認しましたか。

あなたの構成では、異常な方法で外部 JS ファイルを呼び出す必要があると言います-ファイルが何らかの方法で解析され、それが通常のリンクに変換されると思いますか? もしそうなら、その後の HTML はどのようになりますか?

于 2013-03-02T07:09:26.700 に答える