zoukankan      html  css  js  c++  java
  • 通过代码为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" />
    

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

  • 相关阅读:
    .net core 反编译一小段
    .net core 自动注入。。。。懵逼。。
    css 过渡效果
    sqlserver 插入语句
    sqlserver 删除表 外键
    关于selenium的CI、框架……
    浅析selenium的PageFactory模式
    java使用IO读写文件总结
    selenium结合sikuliX操作Flash网页
    记阿里巴巴的一次面试
  • 原文地址:https://www.cnblogs.com/splover/p/2298246.html
Copyright © 2011-2022 走看看