Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript视频赢得';在我的小部件应用程序中无法加载_Javascript_Php_Html_Iframe - Fatal编程技术网

Javascript视频赢得';在我的小部件应用程序中无法加载

Javascript视频赢得';在我的小部件应用程序中无法加载,javascript,php,html,iframe,Javascript,Php,Html,Iframe,我正在尝试构建一个非常基本的小部件系统,根据小部件的ID呈现一些内容和视频。我认为我有一个非常可靠的方法来实现这一点,直到我遇到一个阻止我加载视频的错误 我想知道1)我正在使用的方法是否是一种理想的方法,2)我正在经历的错误是否是可以修复的。下面是我如何设置它的 您将以下代码放置在希望小部件呈现的网站上: <script type="text/javascript" src="http://testing.womensforum.com/widgets/example.js">

我正在尝试构建一个非常基本的小部件系统,根据小部件的ID呈现一些内容和视频。我认为我有一个非常可靠的方法来实现这一点,直到我遇到一个阻止我加载视频的错误

我想知道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>

Widget.Load('098F6BC4621D3CADE4E832627B4F6','wf_Widget');
这将调用下面的JS代码,它向服务器发送一个AJAX请求,请求提供它应该呈现的HTML代码。一旦有了它,我就在div元素(wf_小部件)中插入一个空白的iframe,我用它将从服务器获得的HTML代码写入iframes文档

    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));
        }
    };
var-host=http://testing.womensforum.com/widgets/example.php';
变量小部件={
加载:函数(小部件散列,元素id){
var http=window.XMLHttpRequest?new-XMLHttpRequest():new-ActiveXObject(“MSXML2.XMLHTTP”);
http.onreadystatechange=函数(){
如果(http.readyState==4&&http.status==200){
var html=http.responseText;
var-iframe=“”;
var div=document.getElementById(元素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(“内容类型”、“应用程序/x-www-form-urlencoded”);
http.send(“widget_hash=“+encodeURIComponent(widget_hash));
}
};
在我尝试加载视频之前,这似乎非常有效。要查看一个实例,您可以点击此处:

您会注意到视频播放器已加载,但没有播放视频。但是如果您查看JS代码在这里得到的HTML:

你看,视频加载得很好,只有当我通过JS传输HTML代码时,它才会停止工作


有人能告诉我们问题是什么,有没有更好的方法来解决这个问题吗?

可能是这个原因吧??使用Ajax—它具有跨域策略,如果文件或回调位于服务器的同一域中,Ajax将在该策略中运行。如果您正试图实现跨域方法,那么请探索不同的途径,而不是ajax——如果我是正确的话