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

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 に答える
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 に答える