惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Hacker News: Ask HN
Hacker News: Ask HN
WordPress大学
WordPress大学
T
The Blog of Author Tim Ferriss
The GitHub Blog
The GitHub Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 聂微东
A
About on SuperTechFans
Stack Overflow Blog
Stack Overflow Blog
雷峰网
雷峰网
Microsoft Azure Blog
Microsoft Azure Blog
腾讯CDC
爱范儿
爱范儿
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 【当耐特】
V
Visual Studio Blog
有赞技术团队
有赞技术团队
U
Unit 42
D
Docker
小众软件
小众软件
F
Full Disclosure
I
Intezer
Scott Helme
Scott Helme
P
Privacy International News Feed
P
Proofpoint News Feed
Engineering at Meta
Engineering at Meta
Google DeepMind News
Google DeepMind News
B
Blog
Martin Fowler
Martin Fowler
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Vercel News
Vercel News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Spread Privacy
Spread Privacy
宝玉的分享
宝玉的分享
S
Security Affairs
www.infosecurity-magazine.com
www.infosecurity-magazine.com
月光博客
月光博客
C
Cisco Blogs
云风的 BLOG
云风的 BLOG
Schneier on Security
Schneier on Security
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Threat Research - Cisco Blogs
量子位
Hacker News - Newest:
Hacker News - Newest: "LLM"
H
Heimdal Security Blog
N
Netflix TechBlog - Medium
H
Hacker News: Front Page
P
Proofpoint News Feed
G
GRAHAM CLULEY
V
Vulnerabilities – Threatpost
S
Schneier on Security

博客园 - Windie Chai

为SharePoint顶部链接开发自定义数据源 Windows Phone Background Agent杂谈 Linq to SharePoint,看上去很美 Windows Phone自定义主题 Windows Phone WebBrowser的技巧 《Visual Studio程序员箴言》笔记 HTML5学习碎片 Windows Phone 7 UI设计和交互规范随笔(2) Windows Phone 7 UI设计和交互规范随笔(1) 使用SharePoint Client OM来查询列表的注意事项(2) 使用SharePoint Client OM来查询列表的注意事项 小心Windows Live Writer插件偷走你的博客密码 [C#]增强响应性,用加载窗体(Splash)来载入主窗体 WindStyle ExifInfo for Windows Live Writer发布 WF4.0活动模型(1):工作流既活动 泛谈SharePoint 2010无代码工作流 如何在SharePoint 2010项目中引用UserProfiles.dll Windstyle SlugHelper for Windows Live Writer发布 让代码看起来更舒服(2):选择适合的字体
SharePoint 2010 JavaScript技巧两则
Windie Chai · 2012-07-06 · via 博客园 - Windie Chai

2012-07-06 11:29  Windie Chai  阅读(1015)  评论()    收藏  举报

SharePoint开发,从某种程度上,也可以认为是Web开发,所以也就不可避免的要使用JavaScript,本文就来介绍SharePoint 2010上的两则JavaScript小技巧。

1.禁用Ribbon,保留导航

SharePoint 2010在UI上最大的变化就是和Office一致的Ribbon界面,Ribbon虽然有各种好处,但对于有些类型的网站(譬如面向互联网的网站)来说,Ribbon可能一个令人困扰的东西,那么我们怎么去掉Ribbon呢?

首先,我们可以观察到,Ribbon分为两个部分,一部分是上方的Tab,它是一个id为“s4-ribbonrow”的div;另一部分是下面的容器(包含导航和实际的操作按钮),它是一个id为“s4-titlerow”的div。

对于s4-ribbonrow来说,我们可以直接将其隐藏。但对于s4-titlerow来说,直接隐藏却不是一个很好的方法。一来s4-titlerow还包含这导航,二来就算隐藏了,我们的一些触发Ribbon Tab切换的操作(譬如选中某个条目)依然会让Ribbon显示出来,所以我们需要另外一种方法。

通过跟踪Ribbon相关的JavaScript代码可以发现,触发Ribbon Tab切换的所有事件都会调用一个叫做“_ribbonStartInit”的方法,而且大多数调用之前都会判断_ribbonStartInit的存在性以及类型(只有直接点击Ribbon Tab时不会判断,但Ribbon Tab已经通过s4-ribbonrow隐藏了,所以不会出现脚本错误),所以我们可以将这个变量去掉或者换一个类型,这样切换Ribbon的代码就无法继续执行,Ribbon也就相当于被禁用了,如下面的代码所示:

_ribbonStartInit = "Ribbon Disabled";

2.让Rating只读

Rating也是SharePoint 2010新增的一个功能,但这个功能一旦启用之后,便对所有用户开放,哪怕是只有查看权限的用户也可以进行打分。有时候我们并不喜欢这种默认行为,而是想让Rating信息对某些用户只读,想要实现这个功能,我们先来分析一下Rating控件。

SharePoint 2010的Rating控件会Render成一个span,它的ID以“RatingsCtrl_”开头,内部包含一个a和一个span。除此之外,每一个Rating控件都会在页面上注册一段JavaScript,用来初始化一个RatingsControl对象,而这个对象在初始化的时候又会向Rating控件这个span添加一些事件绑定(mouseover、mouseout、keypress)。

所以我们只需要把这个span上的这几个事件绑定去掉,就可以让Rating控件变为只读了,如下面的代码所示:

function ids_ratingDisabling(){{
 
var rc =$get('Rating控件ID');
 
if(rc != null)
 
$clearHandlers(rc);
 
}}
 
_spBodyOnLoadFunctionNames.push('ids_ratingDisabling');

如果页面上有多个Rating控件,可以想办法先把这些控件都找出来,然后遍历它们依次执行$clearHandlers方法。

需要注意的是Rating控件注册的JavaScript会在rating.js加载完成后执行,所以我们的这段代码务必不能过早执行,这里将禁用Rating的函数添加到_spBodyOnLoadFunctionNames中,可以保证我们的代码在执行时,Rating控件自己的代码已经执行完毕了。