让JavaScript在IE中运行

时间:2014-03-03 09:04:44

标签: javascript jquery html internet-explorer validation

我有这个JavaScript在Safari和FireFox中运行良好,但在IE中它不起作用,我无法使其工作!谷歌在这里没有帮助很多:( 该脚本更改div中的内容依赖于在一个小菜单中单击的链接! 我在此页面和JSFiddle上有代码!

代码应该/将要工作的页面:Live workingpage

希望你们能帮助我在IE中完成这项工作。它适用于Safari,有时也适用于FF。

问题更新

这是我的JS:

<script type="text/javascript" src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
<script type="text/javascript">
<!-- Begin
$(function() {
$('#om').click(function(e) {
    $('.hestetekst').load('heste/Churchill/html/churchilltekst.html');
    e.preventDefault();
});

$('#resul').click(function(e) {
    $('.hestetekst').load('heste/Churchill/html/churchillresul.html');
    e.preventDefault();
});

$('#billeder').click(function(e){
    $('.hestetekst').load('heste/Churchill/html/churchillbilleder.html');
    e.preventDefault();
});

$('#video').click(function(e){
    $('.hestetekst').load('heste/Churchill/html/churchillvideo.html');
    e.preventDefault();
});

$('#afkom').click(function(e){
    $('.hestetekst').load('heste/Churchill/html/churchillafkom.html');
    e.preventDefault();
});
});

$.ajaxSetup({
'beforeSend' : function(xhr) {
    xhr.overrideMimeType('text/html; charset=ISO-8859-1');
}
}); 
//  End -->
</script>

HTML包括菜单:

<div class="hesteundertop">
    <p>
        <span class="linkstyle3"><a id="om" href="#">Om Churchill</a></span> &#124; 
        <span class="linkstyle3"><a id="resul" href="#">Resultater</a></span> &#124;
        <span class="linkstyle3"><a id="billeder" href="#">Billeder</a></span> &#124;         
        <span class="linkstyle3"><a id="video" href="#">Video</a></span> &#124;
        <span class="linkstyle3"><a id="afkom" href="#">Afkom</a></span>
    </p>
</div>

<div class="hestetekst">
    <!--#include virtual="heste/Churchill/html/churchilltekst.html"-->
</div>

2 个答案:

答案 0 :(得分:0)

我不知道这是否是唯一的问题,但你应该删除这里的额外逗号,这些逗号在某些版本的IE中会引起问题:

$.ajaxSetup({
    'beforeSend' : function(xhr) {
        xhr.overrideMimeType('text/html; charset=ISO-8859-1');
    },     // <== remove the comma on this line
}); 

另一个问题。您的真实HTML页面中有两个<body>标记。


另一个问题。当我点击您的几个链接时,Chrome会报告此消息:

  

XMLHttpRequest无法加载   http://www.simonhollander.dk/v/heste/Churchill/html/churchillresul.html。   请求中不存在“Access-Control-Allow-Origin”标头   资源。因此不允许来源“http://simonhollander.dk”   访问。 churchill.shtml:1

出于安全原因,您的ajax呼叫基本上被拒绝,看起来这个问题是您的网页是http://simonhollander.dk,但您请求的网址是http://www.simonhollander.dk。请注意,其中一个有www。而另一个没有。这使得它们成为不同的域,因此由于同源策略而阻止了ajax。使域完全匹配,不应阻止此请求。

答案 1 :(得分:0)

查看页面源代码,似乎页面已被严重最小化。整个JavaScript是一行注释,因为它以<!-- Begin$(function()开头。该脚本永远不会被执行。

手动输入

$('#om').click(function(e) {
    $('.hestetekst').load('http://www.simonhollander.dk/v/heste/Churchill/html/churchilltekst.html');
    e.preventDefault();
});

进入Chrome控制台,处理程序按预期添加。