我有一个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']);
}
});
答案 0 :(得分: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']);
}
});
试一试,看看你是如何上场的。
答案 1 :(得分: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']);
});
}
});