0

我有一个 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']);
        }
    });
4

2 回答 2

0

您的代码应该可以工作,因此您可能需要调试其他可能的问题。

$(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']);
   }
});

试试看,看看你会怎么做。

于 2012-10-29T19:02:59.063 回答
0

只要存在嵌入 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']);
        });
    }
});
于 2012-10-29T20:13:37.640 回答