我有这个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> |
<span class="linkstyle3"><a id="resul" href="#">Resultater</a></span> |
<span class="linkstyle3"><a id="billeder" href="#">Billeder</a></span> |
<span class="linkstyle3"><a id="video" href="#">Video</a></span> |
<span class="linkstyle3"><a id="afkom" href="#">Afkom</a></span>
</p>
</div>
<div class="hestetekst">
<!--#include virtual="heste/Churchill/html/churchilltekst.html"-->
</div>
答案 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控制台,处理程序按预期添加。