我想知道如何通过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>它必须向我显示播放列表。但我什么也得不到。
发布于 2016-06-24 03:35:30
您必须将DOM元素与javascript绑定。在document ready中,您可以调用类似于$('#someDiv').makePlayer()。因此,页面加载它工作得很好。但是当您创建ajax时,我猜您是在替换ajax上的页面内容。如果要再次移除和加载之前调用makeplayer()的DOM元素。在ajax调用之后,您必须再次调用makePlayer thing。
https://stackoverflow.com/questions/38000188
复制相似问题