这是我团队中常见的问题。由于没有任何理由,IE8有时只加载脚本。我使用asp.net mvc3,并且通过_layout.cshtml加载了一些脚本(这就像我所有其他页面都继承的母版页)。另一堆脚本仅在需要时加载。我必须提一下,我开始使用Head.js来加载我的脚本。我实际上希望它能解决IE8脚本加载问题。
这些问题不会发生在firefox或chrome上(这是另一个动机,我确定它只发生在IE上)。而且看起来,如果一个脚本在IE8上中断,这个中断会通过其他脚本传播。
我知道这可能是一个太宽泛的问题,只能通过上述情况来解决。所以我想知道的是你有这样的问题吗?如果是的话,你做了什么来解决它?我真的很感谢一些方向,因为我必须使用IE浏览器。
以下是按照加载顺序在_layout.cshtml上加载的脚本:
这些是我在某些页面上使用的其他一些脚本(它不在他们的顺序中):
修改
作为T.J.要求提供一些代码,因为只使用脚本名称很难识别问题,就在这里。
在_layout.cshtml上加载的脚本
<head>
<script src="@Url.Content("~/Scripts/head.min.js")" language="javascript" type="text/javascript"></script>
//Lots of css files loaded mostly through document.write
<script type="text/javascript" language="javascript">
// if (head.browser.mozilla || head.browser.webkit || head.browser.opera ||
// (head.browser.ie && (head.browser.version == '9.0'))) {
head.js('@Url.Content("~/Scripts/jquery-1.5.1.min.js")')
.js('@Url.Content("~/Scripts/modernizr-1.7.min.js")')
.js('@Url.Content("~/Scripts/jquery-ui-1.8.11.min.js")')
.js('@Url.Content("~/Scripts/jquery.ui.datepicker-pt-BR.js")')
.js('@Url.Content("~/Scripts/jquery.validate.min.js")')
.js('@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")');
if (screen.width == 1024) {
head.js('@Url.Content("~/Scripts/resolucao1024.js")');
} else {
head.js('@Url.Content("~/Scripts/resolucaoMaior1024.js")');
}
</script>
@RenderSection("Header", false)
</head>
在图表和图形页面上加载的脚本
@section Header{
<script type="text/javascript" language="javascript">
head
.js('@Url.Content("~/Scripts/jquery-blockUI.js")')
.js('@Url.Content("~/Scripts/jqGridMVC/grid.locale-pt-br.js")')
.js('@Url.Content("~/Scripts/jqGridMVC/jquery.jqGrid-4.1.2.min.js")')
.js('@Url.Content("~/Scripts/jquery-ConfigAjax.js")')
.js('@Url.Content("~/Scripts/jqPlot/jquery.jqplot.min.js")')
.js('@Url.Content("~/Scripts/jqPlot/jqplot.highlighter.min.js")')
.js('@Url.Content("~/Scripts/jqPlot/jqplot.dateAxisRenderer.min.js")')
.js('@Url.Content("~/Scripts/jqPlot/jqplot.pieRenderer.min.js")')
.js('@Url.Content("~/Scripts/jqPlot/jqplot.donutRenderer.min.js")')
.js('@Url.Content("~/Scripts/jqPlot/jqplot.cursor.min.js")');
</script>
}
编辑2
哦!我忘了提到每次调用一些javascript功能时,我都使用head(function() {})
代替$(function(){})
(在head.js网站上推荐它)。
编辑3
正如Zeta所说,我提供了IE控制台的打印件(来自我的图表和图形页面)。
因为我是巴西人,所以用葡萄牙语。但是很容易理解:它意味着&#39; jqplot&#39;是null或不是对象。像jqplot从未加载或在加载过程中遇到问题。
答案 0 :(得分:2)
我决定这样做:
head.js("js/jquery-1.7.1.min.js",
function() {
head.js("js/script.js");
head.js("js/script1.js");
head.js("js/script2.js");
head.js("js/script3.js");
});
希望有所帮助
答案 1 :(得分:1)
广泛的问题,所以我不能保证这会解决它。
但是我想大约一年前我遇到了IE8和脚本标签的问题,听起来和你的一样。
我注意到如果脚本标签没有添加所有额外内容:
型= “文本/ JavaScript的” 语言= “JavaScript的”
并且服务器没有发送 http header-&gt;内容类型:text / javascript
它不起作用。
给它一张支票,但这就是我得到的全部