通过代码为SharePoint添加Javascript引用
在SharePoint的实际开发过程中,我们总有一些通用的Javascript脚本,如何添加这些客户端脚本的引用呢? 最简单的方式我想应该是用SharePoint Designer直接编辑母版页(Master Page),在<Header></Header>中添加以下代码。
<script type="text/javascript" src="/_layouts/MyScripts.js">
这是最直接的方式,但却不是推荐的方式,在开发和测试环境中你可以这样快速的添加,但在正式的环境中,我们并不希望直接用SharePoint Designer去直接修改任何站点。本人通过另一种方法动态的添加脚本的引用。
通过Feature添加脚本引用
首先创建一个简单的Feature:
1. 打开VS 2010, 创建一个空的SharePoint项目,由于要添加javascript引用,所以我们的部署方式只能选择“Deploy as a Farm Solution”。
2. 创建好新的项目后,在解决方案管理器中找到Features节点,右键添加一个新的Feature。如下图
3. 右键单击新创建的Feature1, 添加一个Event Receiver
4.这样一个简单的Feature就完成了,你当然可以完善一下其他信息比如,Feature的名字,描述等等。
添加引用代码
接下来就是在激活feature的时候,添加脚本引用。代码非常简单。
// Uncomment the method below to handle the event raised after a feature has been activated. SPWeb currentWeb; public override void FeatureActivated(SPFeatureReceiverProperties properties) { try { using (currentWeb = (SPWeb)properties.Feature.Parent) { if (currentWeb != null) { currentWeb.CustomJavaScriptFileUrl = @"/_layouts/MyScripts.js"; currentWeb.Update(); } } } catch (Exception ex) { } finally { if (currentWeb != null) currentWeb.Dispose(); } }
最后用VS再带的打包和部署功能将解决方案部署,然后通过“管理站点应用”找到Feature1,然后激活。
检查部署情况
打开SharePoint 站点,查看源代码:你就会发现我们的脚本已经嵌入页面了(粗体部分)。
document.write('<script type="text/javascript" src="/_layouts/blank.js?rev=QGOYAJlouiWgFRlhHVlMKA%3D%3D"></' + 'script>'); document.write('<script type="text/javascript" src="/ScriptResource.axd?d=SKFLvF-EvR1mlvrYxWyEZjFDw6bS-SVrMGavINFSyCzVEqN_9eg59nW_dFeLRE6SgfxuA6tSz34aPo1TpYBKN2yiixIon88_QeT4s2k6JrM1&t=ffffffffc9d3eaae"></' + 'script>'); // ]]> </script> <script type="text/javascript" src="/_layouts/MyScripts.js"></script> <link type="text/xml" rel="alternate" href="/sites/SB/_vti_bin/spsdisco.aspx" />
当然还有其他的方法,希望大家交流。