Javascript 操作 SharePoint media web part

Javascript 操作 SharePoint media web part                                                   

标签:               Javascript操作SharePointmediaweb part                     

     http://blog.csdn.net/abrahamcheng/article/details/17397231

本文讲述如何用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): 

[javascript] view plain copy print?
  1. <script>  
  2.        var mdeiaPlayerHostId;  
  3.        var closeButton;  
  4.        function getMediaPlayer() {  
  5.            if (mdeiaPlayerHostId) {  
  6.                var p = document.getElementById(mdeiaPlayerHostId)  
  7.                var obj = p.getElementsByTagName("object");  
  8.                return obj[0].Content.MediaPlayer;  
  9.            }  
  10.            else {  
  11.               var paramNodes = document.getElementsByTagName("param");  
  12.               for (i = 0; i < paramNodes.length; i++) {  
  13.                   if (paramNodes[i].value && paramNodes[i].value == "/_layouts/clientbin/mediaplayer.xap") {  
  14.                       mdeiaPlayerHostId = paramNodes[i].parentNode.parentNode.id;  
  15.                       return paramNodes[i].parentNode.Content.MediaPlayer;  
  16.                   }  
  17.               }  
  18.            }  
  19.        }  
  20.   
  21.        function CloseMediaPlayer() {  
  22.            var playerDiv = document.getElementById(mdeiaPlayerHostId);  
  23.            playerDiv.style.display = "none";             
  24.            var closeMediaButtonDiv = document.getElementById("CloseMediaButtonDiv");  
  25.            closeMediaButtonDiv.style.display = "none";  
  26.        }  
  27.   
  28.        function OpenMediaPlayer() {  
  29.            var playerDiv = document.getElementById(mdeiaPlayerHostId);  
  30.            playerDiv.style.display = "";  
  31.            var closeMediaButtonDiv = document.getElementById("CloseMediaButtonDiv");  
  32.            closeMediaButtonDiv.style.display = "";  
  33.        }  
  34.   
  35.        function GetTitle(source) {  
  36.            title = source;  
  37.            var index =  title.lastIndexOf("/");  
  38.            title = title.substring(index + 1, title.length);  
  39.            return title  
  40.        }  
  41.   
  42.        function PlayerMediaBySliverlight(source) {  
  43.            var playerObject = getMediaPlayer();  
  44.            playerObject.AutoPlay = true;  
  45.            playerObject.MediaSource = source;  
  46.            playerObject.MediaTitle = GetTitle(source);  
  47.            if (!closeButton) {  
  48.                var closeHtml = "<a id='downloadMediaLink' style='float:left' href=''></a><a style='float:right' onclick='CloseMediaPlayer();'>Close</a>";  
  49.                var playerDiv = document.getElementById(mdeiaPlayerHostId);  
  50.                closeButton = document.createElement("div");  
  51.                closeButton.id = "CloseMediaButtonDiv";  
  52.                closeButton.innerHTML = closeHtml;  
  53.                playerDiv.parentNode.insertBefore(closeButton, playerDiv);  
  54.            }  
  55.   
  56.            var downloadMediaLink = document.getElementById('downloadMediaLink');  
  57.            downloadMediaLink.href = source;  
  58.            downloadMediaLink.innerText = "正在播放:" + GetTitle(source);  
  59.            OpenMediaPlayer();  
  60.            playerObject.Play();  
  61.        }  
  62.   
  63.           
  64.         function WindowsLoad () {  
  65.            // wmv;wma;avi;mpg;mp3;  
  66.            var linkNodes = document.getElementsByTagName("a");  
  67.            for (i = 0; i < linkNodes.length; i++) {  
  68.                if (linkNodes[i].href && (linkNodes[i].href.indexOf('.wmv') != -1 ||  
  69.                    linkNodes[i].href.indexOf('.wma') != -1 ||  
  70.                    linkNodes[i].href.indexOf('.avi') != -1 ||  
  71.                    linkNodes[i].href.indexOf('.mpg') != -1 ||  
  72.                    linkNodes[i].href.indexOf('.mp3') != -1)) {  
  73.                    linkNodes[i].setAttribute("onclick", "PlayerMediaBySliverlight('" + linkNodes[i].href + "'); return false;");  
  74.                    // alert(linkNodes[i].href);  
  75.                }  
  76.            }  
  77.         }  
  78.   
  79.         window.attachEvent("onload", WindowsLoad);  
  80.    </script>  
 <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' onclick='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>
 
posted @ 2017-09-12 14:03  sky20080101  阅读(92)  评论(0)    收藏  举报