Javascript 操作 SharePoint media web part

本文讲述如何用Javascript 操作 SharePoint media web part。

需求是这样的,SharePoint页面上所有若干链接到Media文件(wmv;wma;avi;mpg;mp3;)的连接。

现在用户要求点击链接直接在网页中播放该连接指向的Media文件。




思路:

1. 在页面插入media web part(手动)

2.  首先在document.onload里面遍历所有的链接(a), 凡是指向的Media文件的链接,覆盖其onclik 事件

3. 在onclick 事件中 使用Javascript 操作 SharePoint media web part


代码实现(2, 3): 

 <script>
        var mdeiaPlayerHostId;
        var closeButton;
        function getMediaPlayer() {
            if (mdeiaPlayerHostId) {
                var p = document.getElementById(mdeiaPlayerHostId)
                var obj = p.getElementsByTagName("object");
                return obj[0].Content.MediaPlayer;
            }
            else {
               var paramNodes = document.getElementsByTagName("param");
               for (i = 0; i < paramNodes.length; i++) {
                   if (paramNodes[i].value && paramNodes[i].value == "/_layouts/clientbin/mediaplayer.xap") {
                       mdeiaPlayerHostId = paramNodes[i].parentNode.parentNode.id;
                       return paramNodes[i].parentNode.Content.MediaPlayer;
                   }
               }
            }
        }

        function CloseMediaPlayer() {
            var playerDiv = document.getElementById(mdeiaPlayerHostId);
            playerDiv.style.display = "none";           
            var closeMediaButtonDiv = document.getElementById("CloseMediaButtonDiv");
            closeMediaButtonDiv.style.display = "none";
        }

        function OpenMediaPlayer() {
            var playerDiv = document.getElementById(mdeiaPlayerHostId);
            playerDiv.style.display = "";
            var closeMediaButtonDiv = document.getElementById("CloseMediaButtonDiv");
            closeMediaButtonDiv.style.display = "";
        }

        function GetTitle(source) {
            title = source;
            var index =  title.lastIndexOf("/");
            title = title.substring(index + 1, title.length);
            return title
        }

        function PlayerMediaBySliverlight(source) {
            var playerObject = getMediaPlayer();
            playerObject.AutoPlay = true;
            playerObject.MediaSource = source;
            playerObject.MediaTitle = GetTitle(source);
            if (!closeButton) {
                var closeHtml = "<a id='downloadMediaLink' style='float:left' href=''></a><a style='float:right' οnclick='CloseMediaPlayer();'>Close</a>";
                var playerDiv = document.getElementById(mdeiaPlayerHostId);
                closeButton = document.createElement("div");
                closeButton.id = "CloseMediaButtonDiv";
                closeButton.innerHTML = closeHtml;
                playerDiv.parentNode.insertBefore(closeButton, playerDiv);
            }

            var downloadMediaLink = document.getElementById('downloadMediaLink');
            downloadMediaLink.href = source;
            downloadMediaLink.innerText = "正在播放:" + GetTitle(source);
            OpenMediaPlayer();
            playerObject.Play();
        }

         
         function WindowsLoad () {
            // wmv;wma;avi;mpg;mp3;
            var linkNodes = document.getElementsByTagName("a");
            for (i = 0; i < linkNodes.length; i++) {
                if (linkNodes[i].href && (linkNodes[i].href.indexOf('.wmv') != -1 ||
                    linkNodes[i].href.indexOf('.wma') != -1 ||
                    linkNodes[i].href.indexOf('.avi') != -1 ||
                    linkNodes[i].href.indexOf('.mpg') != -1 ||
                    linkNodes[i].href.indexOf('.mp3') != -1)) {
                    linkNodes[i].setAttribute("onclick", "PlayerMediaBySliverlight('" + linkNodes[i].href + "'); return false;");
                    // alert(linkNodes[i].href);
                }
            }
         }

         window.attachEvent("onload", WindowsLoad);
    </script>




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用 JavaScript操作 Web Storage,Web Storage 提供了一种在浏览器中存储数据的机制,包括 sessionStorage 和 localStorage。 sessionStorage 是在用户会话期间存储数据的一种机制,当用户关闭浏览器标签或窗口时,存储的数据将被清除。而 localStorage 则是一种长期存储数据的机制,即使用户关闭浏览器,数据也会保留。 要使用 Web Storage,可以使用以下两个全局对象之一来访问它们: 1. sessionStorage:用于访问和操作 sessionStorage。 2. localStorage:用于访问和操作 localStorage。 以下是一些常见的操作示例: 1. 存储数据: ```javascript // 使用 sessionStorage 存储数据 sessionStorage.setItem('key', 'value'); // 使用 localStorage 存储数据 localStorage.setItem('key', 'value'); ``` 2. 获取数据: ```javascript // 从 sessionStorage 中获取数据 const valueFromSessionStorage = sessionStorage.getItem('key'); // 从 localStorage 中获取数据 const valueFromLocalStorage = localStorage.getItem('key'); ``` 3. 删除数据: ```javascript // 从 sessionStorage 中删除数据 sessionStorage.removeItem('key'); // 从 localStorage 中删除数据 localStorage.removeItem('key'); ``` 请注意,存储的数据以键值对的形式存储,并且值只能是字符串。如果需要存储其他类型的数据,可以使用 JSON.stringify() 方法将其转换为字符串,再使用 JSON.parse() 方法将其转换回来。 希望这些示例对你有所帮助!如果你有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值