通过代码为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。如下图
  

      通过代码为SharePoint添加Javascript引用

3. 右键单击新创建的Feature1, 添加一个Event Receiver
   

      通过代码为SharePoint添加Javascript引用

 
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" />

  当然还有其他的方法,希望大家交流。

你可能感兴趣的:(JavaScript)