簡體   English   中英

僅當存在查詢字符串參數時初始化媒體播放器

[英]Initialize media player only if query string parameter is present

我有一個SharePoint頁面,該頁面具有指向視頻剪輯的超鏈接。 單擊鏈接將在覆蓋窗口中播放視頻(使用Silverlight)。 如果不存在Silverlight運行時,則會顯示“安裝Silverlight”提示。 使用IsDlg=1查詢字符串調用頁面時,超鏈接被隱藏(位於左側導航欄中),並且僅顯示主內容頁面。 但是我仍然收到“安裝Silverlight”提示。 當出現IsDlg=1時,我想擺脫提示。

以下是頁面上的相關JavaScript代碼。 我已對其稍作修改,以僅在IsDlg=1不存在的情況下初始化媒體播放器。 但是它沒有按預期工作。 有任何想法嗎?

// original code
 $(function () {
        mediaPlayer.createOverlayPlayer();
        mediaPlayer.attachToMediaLinks(document.getElementById('videoList'), ['wmv', 'avi', 'mp4']);
    });

// modified code
    $(function () {
        var field = 'IsDlg';
        var url = window.location.href;
        if (url.indexOf('?' + field + '=') != -1) {

        } else {
            mediaPlayer.createOverlayPlayer();
            mediaPlayer.attachToMediaLinks(document.getElementById('videoList'), ['wmv', 'avi', 'mp4']);
        }
    });

您的代碼應該可以工作,因此您可能希望調試其他可能的問題。

$(document).ready(function () {     // add explicit wait until dom ready
  console.log(window.location.search);   // just to check that the parameter is present
  if(window.location.search.indexOf("IsDlg=1") < 0){   // testing the query string part only
    mediaPlayer.createOverlayPlayer();
    mediaPlayer.attachToMediaLinks(document.getElementById('videoList'), ['wmv', 'avi', 'mp4']);
   }
});

試試看,看看你如何過。

只要存在嵌入Silverlight控件的HTML,它就會顯示“安裝Silverlight”對話框。 如果您不希望顯示對話框,則必須更改HTML源。 您可以添加JavaScript代碼來動態添加HTML,以便僅在必要時顯示。 該答案將取決於您當前如何嵌入Silverlight控件。

編輯:您可以嘗試這樣的代碼:

$(function () {
    if (window.location.search.indexOf('IsDlg=1') === -1) {
        $.getScript('/_layouts/mediaplayer.js', function () {
            mediaPlayer.createOverlayPlayer();
            mediaPlayer.attachToMediaLinks(document.getElementById('videoList'), ['wmv', 'avi', 'mp4']);
        });
    }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM