Internet Explorer未解析javascript方法
我有一个带有过滤功能的网页。过滤使用一个javascript文件,该文件链接在标题中,如下所示:Internet Explorer未解析javascript方法,javascript,html,internet-explorer,Javascript,Html,Internet Explorer,我有一个带有过滤功能的网页。过滤使用一个javascript文件,该文件链接在标题中,如下所示: 文件内容定义了自动标记方法: var autotag = { filter: function(container, resetPage = true){ if(resetPage) $('#filter-page').val('1') var form = $('#'+container); var action = form.attr('ac
文件内容定义了自动标记方法:
var autotag = {
filter: function(container, resetPage = true){
if(resetPage)
$('#filter-page').val('1')
var form = $('#'+container);
var action = form.attr('action');
var method = form.attr('method');
var data = form.serialize()+'&method=ajax';
$.ajax({
url: action,
data: data,
method:method,
success: function(response, status, xhr){
history.pushState(null,null, window.location.pathname+'?'+form.serialize());
$('#'+container).html(response);
}
});
}
};
在我的html正文中,我有以下html:
在Chrome和Firefox中,这不会导致任何问题。另一方面,IE抛出“未定义自动标记”错误。为什么IE会考虑AutoTAG变量未定义? <代码>
<script type="text/javascript" defer="defer" src="https://www.werkenbijtauw.nl/static/default/script/autotag.js"></script>
将脚本标记放在文档底部……就在结束标记之前。。。。或者为头部中需要等待DOM解析完成的脚本添加一个defer属性。将脚本标记放在文档底部…就在结束标记之前。。。。或者向头部中需要等待DOM解析完成的脚本添加一个defer属性。谢谢。虽然这并没有解决我的问题,但它帮助我找到了问题。Internet Explorer未正确解析设置了默认值的函数。所以函数(someValue,someBoolean=true){if(someBoolean){}
是IE 11解析得不太好的东西。因此,我最终将方法更改为函数(someValue,someBoolean){if(someValue==null | | someValue)}
另一个技巧:设置IE以记录开发人员控制台消息。。。工具>Internet选项>高级选项卡,选中“始终记录开发人员控制台消息”。。。保存更改。。。。。要调试页面加载期间发生的错误。。。f12>调试选项卡,从下拉列表中选择“所有异常中断”(看起来像停止标志)。。。将开发工具固定到IE!重要信息:调试时必须打开开发工具。按ctrl+f5以硬刷新正在调试的页面。。。当遇到错误时,开发工具现在将中断。。。通常(当开发工具未打开时)脚本异常会被忽略。谢谢。虽然这并没有解决我的问题,但它帮助我找到了问题。Internet Explorer未正确解析设置了默认值的函数。所以函数(someValue,someBoolean=true){if(someBoolean){}
是IE 11解析得不太好的东西。因此,我最终将方法更改为函数(someValue,someBoolean){if(someValue==null | | someValue)}
另一个技巧:设置IE以记录开发人员控制台消息。。。工具>Internet选项>高级选项卡,选中“始终记录开发人员控制台消息”。。。保存更改。。。。。要调试页面加载期间发生的错误。。。f12>调试选项卡,从下拉列表中选择“所有异常中断”(看起来像停止标志)。。。将开发工具固定到IE!重要信息:调试时必须打开开发工具。按ctrl+f5以硬刷新正在调试的页面。。。当遇到错误时,开发工具现在将中断。。。通常(当开发工具未打开时)忽略脚本异常。