Javascript 一个脚本导致SharePoint“删除”;“白页”;除IE8及以下版本外的所有版本

Javascript 一个脚本导致SharePoint“删除”;“白页”;除IE8及以下版本外的所有版本,javascript,jquery,sharepoint,sharepoint-2013,Javascript,Jquery,Sharepoint,Sharepoint 2013,我有一些事情几乎是倒退的(IE8是英雄!) 我的组织最近从2007年升级到SharePoint 2013,带来了一系列的变化。一个主要的变化是内容编辑器Web部件现在不能很好地处理自定义HTML、CSS和JS 同时,我们升级到IE9(我知道有点过时了,不要再重复了)。我有一个脚本,在升级之前一直运行良好。现在使用IE9和SharePoint 2013,我加载了一个带有脚本编辑器Web部件的文档库,下面的代码使页面变为白色 我把范围缩小到这个,但我不知道为什么。如果我注释掉JQuery,所有内容都

我有一些事情几乎是倒退的(IE8是英雄!)

我的组织最近从2007年升级到SharePoint 2013,带来了一系列的变化。一个主要的变化是内容编辑器Web部件现在不能很好地处理自定义HTML、CSS和JS

同时,我们升级到IE9(我知道有点过时了,不要再重复了)。我有一个脚本,在升级之前一直运行良好。现在使用IE9和SharePoint 2013,我加载了一个带有脚本编辑器Web部件的文档库,下面的代码使页面变为白色

我把范围缩小到这个,但我不知道为什么。如果我注释掉JQuery,所有内容都会再次加载。其他的都不是问题,只是出于某种原因

 <script type="text/javascript">
  $(document).ready(function(){ 
  $('.video').hide().before('<a href="#" id="toggle-video" class="button">Open/Close Video  Tutorial</a>');
 $('a#toggle-video').click(function() {
    $('.video').slideToggle(1000);
    return false;
});
});
</script>

$(文档).ready(函数(){
$('.video').hide().before('');
$('a#切换视频')。单击(函数(){
$('.video')。幻灯片切换(1000);
返回false;
});
});
在调试时,我在IE9+中得到以下消息,但不是IE8

“SCRIPT5022:DOM异常:层次结构\u请求\u错误(3) jquery.min.js,第104行,字符225“

想知道是否有一种方法我可以强迫它呈现为IE8

无论如何,谢谢你的时间

这是完整的片段

<!DOCTYPE HTML>
<html>

<head>
 <!-- JS -->
 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"     type="text/javascript"></script>
 <script type="text/javascript">
 $(document).ready(function(){  
  $('.practice').hide().before('<a href="#" id="toggle-practice"     class="button2">Open/Close Practice Council View</a>');
 $('a#toggle-practice').click(function() {
     $('.practice').slideToggle(1000);
    return false;
 });
  });
 </script>


<script type="text/javascript">
$(document).ready(function(){   
$('.policy').hide().before('<a href="#" id="toggle-policy" class="button">Open/Close     Policy Central Live View</a>');
$('a#toggle-policy').click(function() {
    $('.policy').slideToggle(1000);
     return false;
 });
 });
 </script>

 <script type="text/javascript">
  $(document).ready(function(){ 
  $('.video').hide().before('<a href="#" id="toggle-video" class="button">Open/Close Video  Tutorial</a>');
 $('a#toggle-video').click(function() {
    $('.video').slideToggle(1000);
    return false;
});
});
</script>


<script type="text/javascript">
$(document).ready(function(){   
$('.resources').hide().before('<a href="#" id="toggle-resources" class="button2">Open/Close Resources</a>');
$('a#toggle-resources').click(function() {
    $('.resources').slideToggle(1000);
    return false;
});
});
</script>


<link rel="stylesheet" type="text/css" href="style.css">

</head>

<body>

 <div class="policy">
 <iframe src="http://XXX/XXX" width="100%" height="600">
</iframe>
 </div>

<br><br>

<div class="practice">
<iframe src="http://XXX/XXX" width="100%" height="600">
</iframe>
 </div>

<br><br>

<div class="video">
<center>No Video Available</center>
</div>

<br><br>

<div class="resources">
<center><p><a href="XX"> XX</a><br><br></p>    </center>
</div>



</body>
</html>

$(文档).ready(函数(){
$('.practice').hide().before('');
$('a#切换练习')。单击(函数(){
$('practice')。滑动切换(1000);
返回false;
});
});
$(文档).ready(函数(){
$('.policy').hide()。在('')之前;
$('a#切换策略')。单击(函数(){
$(“.policy”).slideToggle(1000);
返回false;
});
});
$(文档).ready(函数(){
$('.video').hide().before('');
$('a#切换视频')。单击(函数(){
$('.video')。幻灯片切换(1000);
返回false;
});
});
$(文档).ready(函数(){
$('.resources').hide().before('');
$('a#切换资源')。单击(函数(){
$(“.resources”).slideToggle(1000);
返回false;
});
});




没有可用的视频




这里有一大堆原因,为什么您可能会得到
层次结构\u请求\u错误
,它们看起来都可能来自
语句:看起来浏览器与响应有一些不同。我知道你可以强制HTML呈现为IE8,这对JQuery也适用吗?你真的不想让你的页面假装是IE8。你应该“修复”实际问题。如果是我,我会使用非最小化的jQuery,并在调试器中执行
.before()
操作,仔细检查jQuery的
.insertBefore()
中发生的
.insertBefore()
的参数,并查看导致此错误的确切原因。他们,你就有了下一个解决问题的线索。不知怎的,为
.insertBefore()
设置的参数搞错了。我无法在此JSFIDLE中重现此问题:。您真的还在使用jQuery1.4.2吗?那是很古老的剧本。我感觉有些东西不符合SharePoint服务器的要求。不幸的是,我仅限于在Web部件中编辑,无法实际访问SharePoint Designer,否则这将更容易。我将获得JQuery的更新版本。