0

わかりました、明らかにここに何かが欠けています(何が欠けているのかわかりません)。私はdivの内容を次のように取得するための基本的なスクリプトに取り組んできました:

<div class="sxvideo">1745623935001,640,360</div>
<div class="sxvideo">1745605281001</div>
<div class="sxvideo">1745623933001,900</div>

次に、これを (ページの下部にロードして) innerHTML (ビデオ ID、幅、および高さ) を取得し、それらを交換し、データをカンマで分割し、高さと幅の両方が未定義のままにしてから、innerHTML を完全な埋め込みコードに置き換え、変数を適切な場所にドロップします。

<script language="JavaScript" type="text/javascript" src="http://admin.brightcove.com/js/BrightcoveExperiences.js"></script>

<script type="text/javascript">
$("div.sxvideo").each(function () {
"use strict";
var bcid = this.innerHTML.split(",");
if (bcid[1] === undefined) {
    bcid[1] = "720";
    }
if (bcid[2] === undefined) {
    bcid[2] = "404";
    }
this.innerHTML = '<center><div style="margin-bottom:15px; height: ' + bcid[2] + 'px; width: ' + bcid[1] + 'px;"><object id="myExperience' + bcid[0] + '" class="BrightcoveExperience"><param name="bgcolor" value="#172531" /><param name="width" value="' + bcid[1] + '" /><param name="height" value="' + bcid[2] + '" /><param name="playerID" value="68593058001" /><param name="playerKey" value="AQ~~,AAAACmfZzQE~,c2ejuULn_boEBJAb-NiqNIQuC2o543gE" /><param name="isVid" value="true" /><param name="isUI" value="true" /><param name="dynamicStreaming" value="true" /><param name="@videoPlayer" value="' + bcid[0] + '" /></object></div></center>';
});
</script>

<script type="text/javascript">brightcove.createExperiences();</script>

編集された追加事項: 物事を少し明確にするために (これが問題である可能性があります)、埋め込みコードは情報を取得し、スクリプトによってビデオを呼び出します (これは、最後の行 brightcove.createExperiences() が行うことです)。埋め込みコードは問題ありません。その形式を使用して投稿すると (変数をデータに置き換えて)、問題なく動作し、ビデオが読み込まれます。

スクリプトの外で brightcove .js を呼び出しているからですか? の各インスタンスを置き換え、コンテンツを置き換えずに、brightcove.createExperiences() を呼び出し、div ごとに呼び出す必要がありました (ページごとに 1 回だけ呼び出す必要があります)。

それが適切な順序で行われたことを確認する準備ができている文書で書かれるべきですか? 脳がスクランブルした。

または、これをより効率的に/より良く行う方法についてより良い提案がある場合は、お気軽にここに投稿してください。ありがとう!

4

4 に答える 4

1

さて、たくさんのカフェインの後、私は戻ってきてそれを動かしました。最終的には次のようになります。

<script type="text/javascript" src="http://admin.brightcove.com/js/BrightcoveExperiences.js"></script>

<script type="text/javascript">
jQuery(document).ready(function($) {
$("div.sxvideo").each(function() {
    var bcid = this.innerHTML.split(",");
    if (bcid[1] === undefined) {
            bcid[1] = "720";
        }
if (bcid[2] === undefined) {
            bcid[2] = "404";
    }
    this.innerHTML = '<center><div style="margin-bottom:15px; height: ' + bcid[2] + 'px; width: ' + bcid[1] + 'px;"><object id="myExperience' + bcid[0] + '" class="BrightcoveExperience"><param name="bgcolor" value="#172531" /><param name="width" value="' + bcid[1] + '" /><param name="height" value="' + bcid[2] + '" /><param name="playerID" value="68593058001" /><param name="playerKey" value="AQ~~,AAAACmfZzQE~,c2ejuULn_boEBJAb-NiqNIQuC2o543gE" /><param name="isVid" value="true" /><param name="isUI" value="true" /><param name="dynamicStreaming" value="true" /><param name="@videoPlayer" value="' + bcid[0] + '" /></object></div></center>';
});
brightcove.createExperiences();
});
</script>

基本的に、ドキュメントを追加する必要があり(LAのFrenchiに感謝)、Brightcoveの初期化をその中に移動します。今では魅力のように機能します。ありがとう!

于 2012-07-24T05:34:53.543 に答える
1

Flash プラグインは、外部 JavaScript を使用してタグに割り当てられた動的 HTML 属性に依存しています。このスクリプト (http://admin.brightcove.com/js/BrightcoveExperiences.js) は通常、ページの読み込み時に実行されますが、スクリプトはページの読み込み後に実行されます。HTML はまだ作成されていないため、Brightcove スクリプトによって適切に変換されません。

解決策は、コードが完成した後に Brightcove スクリプトを明示的に実行することです。コードの後に​​次の行を追加すると、すべてうまくいくはずです。

$.getScript('http://admin.brightcove.com/js/BrightcoveExperiences.js');

http://jsfiddle.net/mblase75/bLU9x/

于 2012-07-23T21:53:25.490 に答える
0

JavaScript 部分にドキュメントの準備ができていません。試す:

$(function(){// Your code here});
于 2012-07-23T21:43:26.203 に答える