通过AJAX加载javascript元素
Loading a javascript element via AJAX
我遇到了一个小问题,即使尝试了一个小时也无法解决。我正在使用JW Player播放歌曲,效果很好。播放器下面是歌曲列表,一旦点击列表中的歌曲,我就会用AJAX重新加载包含播放器的div,并更改该div下面的javascript以播放新歌。div加载正常,但玩家在AJAX调用后根本没有加载。没有错误,只是玩家无法第二次实例化。
这是显示玩家的代码:
<div id="myDiv"><div id="myElement2">Loading the player...</div>
<script type="text/javascript">
jwplayer("myElement2").setup({
file: "uploads/maid.mp3",
title: "Sintel Movie Trailer",
width: '100%',
skin: "six/six3.xml",
height:30
});
</script></div>
以下是加载新歌时发生的情况:
document.getElementById("myDiv").innerHTML='';
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
这是来自单独php文件的响应文本:
<div id="myElement2">Loading the player...</div>
<script type="text/javascript">
jwplayer("myElement2").setup({
file: "newfilename.mp3",
title: "file name",
width: '100%',
skin: "six/six3.xml",
height:30
});
</script>
但在AJAX调用播放器消失后,只有文本加载播放器。。。出现。以下是玩家所在的网址:contestlancer.com/davidicus
糟糕的是,经过一番研究,我发现即使脚本是通过JS调用附加的,它也不会执行,所以你必须执行它。因此,有同样问题的人请注意,通过AJAX加载的脚本必须通过javascript中的eval函数执行。
因此,在我的内容AJAX文件中,我对脚本进行了id测试,即:
<script type="text/javascript" id="testing">
然后在JS函数中,我做了以下操作:
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML='';
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
eval(document.getElementById('testing').innerHTML);
}
}
希望能节省别人的时间。当做Ahmar
InnerHTML不会为脚本开脱。php应该只响应音乐或视频文件的路径,然后重新设置jwplayer。
对不起,我出去吃饭了;-)
我认为您的页面不需要ajax来从php中获取html-surp,因为您的页面已经知道要播放哪个音乐文件。
我不知道关于jwplayer的确切信息,但请尝试使用此代码,而不是您原来的loadXMLDoc()
。
function loadXMLDoc(str) {
jwplayer("myElement2").setup({
file: str,
title: str,
width: '100%',
skin: "six/six3.xml",
height: 30
});
}
title
将被设置为文件名,但您的页面可能还可以。
相关文章:
- 如何访问数组中的数组元素(JavaScript)
- 如何找到从中调用函数的元素(Javascript)
- 另一个元素JAVAscript中的元素位置
- 隐藏元素:Javascript属性和CSS样式之间的区别
- 如何比较数组中的元素(javascript)
- 使用一个函数来不同的元素 JavaScript
- 我需要从数组中获取一些元素 - JavaScript
- 元素 JavaScript 的读取宽度
- 识别数组的最后一个元素 - javascript
- 你如何使 Math.random 数组中的每一个第 9 个元素都是同一个元素?[JavaScript]
- 即时创建 Asp.Net 元素 Javascript
- 在提交表单上动态更改输入元素 javascript
- Kendo UI Grid 获取当前元素 javascript 的 ID
- 在我的 chrome 网上商店应用程序中禁用检查元素/JavaScript 控制台
- Canvas 元素 + Javascript 在 Chrome 和 Firefox 中工作,而不是在 Internet
- 对于在循环中不打印所有元素 - Javascript
- 选择元素 |Javascript vs Jquery.
- 无法删除 DOM 元素(JavaScript,CreateJS)
- 单击元素>JavaScript输出文档.activeElement VS.事件目标
- 当用户在文本框中输入数字时,将动态获得数组元素javascript或PHP