我正在嘗試構建一個非常基本的小部件系統,它根據小部件的ID呈現一些內容和視頻。我認爲我有一個非常可靠的方法來做到這一點,直到我遇到了一個阻止我的視頻加載的錯誤。Javascript視頻不會加載到我的小部件應用程序
我想知道1)我使用的方法是一種理想的方法,2)如果我遇到的錯誤是我的目標,可以修復。這是我如何安裝它。
你把你的網站,你想要的插件來呈現以下代碼:
<script type="text/javascript" src="http://testing.womensforum.com/widgets/example.js"></script>
<div id="wf_widget"></div>
<script>Widget.Load('098f6bcd4621d373cade4e832627b4f6', 'wf_widget');</script>
這會打電話給下面的JS代碼,它發送一個AJAX請求到服務器請求的HTML代碼它應該呈現。一旦我有了,我將一個空白iframe插入到div元素(wf_widget)中,我使用它將從服務器獲得的HTML代碼寫入iframe文檔。
var host = 'http://testing.womensforum.com/widgets/example.php';
var Widget = {
Load: function(widget_hash, element_id) {
var http = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("MSXML2.XMLHTTP");
http.onreadystatechange = function() {
if (http.readyState == 4 && http.status == 200) {
var html = http.responseText;
var iframe = "<iframe allowtransparency=\"false\" style=\"border: 1px solid #8c8b8b; z-index:10;\" width=\"300\" height=\"600\" marginwidth=\"0\" marginheight=\"0\" frameborder=\"0\" scrolling=\"no\"></iframe>";
var div = document.getElementById(element_id);
div.innerHTML = iframe;
var frame = div.getElementsByTagName("iframe")[0];
var doc = frame.contentDocument || frame.contentWindow.document || frame.contentWindow.window.document;
doc.write(html);
}
}
http.open("POST", host, true);
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.send("widget_hash=" + encodeURIComponent(widget_hash));
}
};
這似乎工作真的很好,直到我試圖加載視頻。要看到一個實例,你可以去這裏: http://testing.womensforum.com/widgets/example.html
你會注意到視頻播放器加載,但沒有視頻播放。但是,如果你簽出JS代碼在這裏獲得HTML: http://testing.womensforum.com/widgets/example.php
您將看到該視頻加載就好了,這是隻有當我管,通過我們的JS的HTML代碼,它停止工作。
任何人都可以提供任何洞察力,問題是什麼,以及是否有更好的方法來解決這個問題?