[英]AJAX and JavaScript script loader
我想知道在通过AJAX加载页面后如何加载JavaScript文件吗? 问题是:我有一个音乐播放器,它使用有关轨道的JS文件和信息。 之后,我加载页面所有工作正常。 但是,当我通过AJAX加载另一个页面时,我的脚本在我调用的页面上不起作用。
代码如下:
function showContent(link,link2) {
var cont = document.getElementById('content');
var loading = document.getElementById('loading');
window.history.replaceState('', 'Title', link2);
var http = createRequestObject();
if( http ) {
http.open('get', link);
http.onreadystatechange = function () {
if(http.readyState == 4) {
cont.innerHTML = http.responseText;
}
}
http.send(null);
} else {
document.location = link;
}
}
function createRequestObject() {
try { return new XMLHttpRequest() }
catch(e) {
try { return new ActiveXObject('Msxml2.XMLHTTP') }
catch(e) {
try { return new ActiveXObject('Microsoft.XMLHTTP') }
catch(e) { return null; }
}
}
}
然后,我使用angular-soundmanager2.js使播放器存活。 并且此段代码在链接到此页面后加载的页面上不起作用
<h5>Songs</h5>
<ul>
<li ng-repeat="song in songs">
<button music-player="play" add-song="song">{{ song.title }}</button>
<button music-player add-song="song">+</button>
</li>
</ul>
<button play-all="songs">Play all</button>
<button play-all="songs" data-play="false">Add all</button>
它必须显示我的播放列表。 但是我什么也没得到。
您必须使用javascript绑定DOM元素。 准备好文档后,您可以调用$('#someDiv')。makePlayer()之类的东西。 因此,页面加载可以正常工作。 但是当您制作ajax时,我想您正在替换ajax上的页面内容。 如果您要删除并再次加载DOM元素,而您之前在该元素上调用了makeplayer()。 您必须在ajax调用后再次调用makePlayer东西。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.