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

您收到的确切错误消息是什么?IE8是否说该initializeDocAttachments()功能不存在?有没有可能它说内部docLoadDocs()功能可能不存在?

于 2013-03-02T07:07:03.593 回答
0

如果没有看到页面其余部分是如何构建的完整上下文,将很难完全诊断。

我要检查的是确保您在上面的任何代码之前被称为 jquery.js,否则它不会设置您之后的任何事件。您是否尝试过使用 firebug 并检查控制台以查看它是否报告了任何其他 JavaScript 错误。

您说您的配置需要您以不寻常的方式调用外部 JS 文件 - 我假设文件以某种方式被解析,然后将其转换为普通链接?如果是这样,那之后的 HTML 会是什么样子?

于 2013-03-02T07:09:26.700 回答