脚本仅在编辑模式 - 共享点页面上执行

时间:2013-10-28 09:44:45

标签: javascript jquery sharepoint calendar

我有一个附加到CEWP的脚本,该脚本仅在我处于编辑模式时执行,并且在我保存页面时不执行任何操作。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">         
function openDialogBox(Url)  

{    
    var ModalDialogOptions = { url:Url, width: 600, height: 500, showClose: true, allowMaximize: true};     
    SP.SOD.execute('sp.ui.dialog.js', 'SP.UI.ModalDialog.showModalDialog', ModalDialogOptions); 
} 

(function($){    
   $('.ms-acal-month').ready(function () {

setTimeout(function() { 

$('a[href*="DispForm.aspx"]').each(function() { 

$(this).attr('onclick', 'openDialogBox("' +  $(this).attr('href') + '")'); 

//$(this).attr('onclick', ' '); 

//alert($(this).attr('href')); 
}); 

$('a[href*="DispForm.aspx"]').each(function() { 

$(this).attr('href','javascript:openDialogBox("' +  $(this).attr('href') + '")'); 

}); 

}, 3000); 

}); 
})(jQuery);    
</script>

如果它是相关的,这就是我试图通过脚本实现的目标:

我在SharePoint 2013上。我有一个表格,其日历视图中显示了活动日历。如果用户想要编辑日历上显示的已添加事件,我会遇到一些问题。 - 显示事件的单元格显示事件的标题,并且它是超链接的。如果用户双击单元格(在空白区域中),则会按照我希望的方式将其转移到默认显示页面。但是,如果他碰巧点击了超链接标题,则默认显示页面不会打开,而是实际的整个项目

我希望始终打开默认显示形式的原因是因为我有一个隐藏/显示字段的自定义脚本

非常感谢提前 Ijlal

1 个答案:

答案 0 :(得分:5)

type="text/javascript"添加到引用该库的第一个脚本标记中,它应该可以正常工作。它确实适合我。

事实证明,type="text/javascript"属性非常重要。我把它从引用我正在使用的javascript库的<script>标签中删除了(在我的情况下是Angular,在你的jQuery中)并且经历了完全相同的行为 - 当页面处于编辑模式时角度代码正在执行但是当页面处于查看模式时,甚至没有被调用。

我意识到这是一篇较旧的帖子,但我遇到了类似的问题并找到了解决我认为我能分享的问题的方法。希望它能帮助未来的Google搜索者。