当我将它们放在与HTML内容相同的页面上时,我创建了几个正常工作的函数,但由于开始有这么多函数,我决定将它们移动到.js文件中。现在无法调用初始函数。
IE8说该功能不存在。我已确认链接正确并确认js文件正在加载。我甚至将初始化的触发事件链接到一个按钮(使用loadFile类),因此我可以手动触发它以确保它不是加载的时间。我在这里做错了什么?
以下是外部脚本和doc ready的链接:
//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'> Upload a file</form>";
document.getElementById('docAttachmentControl').innerHTML = docFormHTML;
docLoadDocs();
}
答案 0 :(得分:0)
当我把代码放在这个小提琴中时,你所拥有的是有意义和有用的:http://jsfiddle.net/3PtuH/1
您收到的确切错误消息是什么? IS IE8是否说initializeDocAttachments()
函数不存在?它是否有可能说内部docLoadDocs()
函数可能不存在?
答案 1 :(得分:0)
如果没有看到如何构建页面其余部分的完整上下文,则很难完全诊断。
我要检查的事情是确保在上面的任何代码之前你被称为jquery.js,否则它不会设置你所追求的任何事件。您是否尝试过使用firebug并检查控制台是否报告任何其他JavaScript错误。
你说你的配置需要你以一种不寻常的方式调用外部JS文件 - 我假设文件在某种程度上被解析然后将其转换为普通链接?如果是这样,之后HTML会是什么样子?