[英]Why won't my HTML file find my javascript file?
我有一个简单的HTML文件,正在尝试链接到javascript文件。 两者都在C:\\ Users \\ Me \\ Test中(因此有C:\\ Users \\ Me \\ Test \\ Test.html和C:\\ Users \\ Me \\ Test \\ test.js)
HTML:
<!doctype html>
<html>
<head>
<title>SoundCloud API</title>
<script src="http://connect.soundcloud.com/sdk.js"></script>
<script src="test.js"></script>
</head>
<body>
<ul>
<li><a href="#" class="genre">EDM</a></li>
<li><a href="#" class="genre">classical</a></li>
<li><a href="#" class="genre">soundtrack</a></li>
</ul>
<div id="target"></div>
</body>
</html>
和Javascript:
function playSomeSound(genre){
SC.get('/tracks', {
genres: genre,
bpm: {
from: 100
}
}, function(tracks){
var random = Math.floor(Math.random()*49);
SC.oEmbed(tracks[random].uri, {auto_play: true}, document.getElementById('target'));
});
}
window.onload = function(){
SC.initialize({
client_id: '*******'
});
var menuLinks = document.getElementsByClassName('genre');
for (var i = 0; i < menuLinks.length; i++){
var menuLink = menuLinks[i];
menuLink.onclick = function(e){
e.preventDefault();
playSomeSound(menuLink.innerHTML);
};
}
};
(请注意,客户端ID实际上是代码中的正确ID。)
HTML正确显示了三个链接,但是单击它们后什么也没有发生。 我想念什么吗?
对于它的价值,我正在关注本教程。 感谢您的任何想法/提示!
编辑:注意,当HTML页面加载时,我可以查看Source,然后单击“ test.js”,它实际上确实加载了Javascript源...因此它正确地看到了JavaScript,导致我认为存在某些问题JavaScript本身...
编辑2:我能够获得我正在使用的编辑器(SublimeText 2)来构建javascript,并出现以下错误:
功能(曲目){
语法错误:意外令牌(
表示不希望在“功能”之后使用“(”?...也许有帮助吗?
编辑3:好的,我一直在搜索,通过在BPM周围添加{},可以得到另一个错误:
function playSomeSound(genre){
SC.get('/tracks', {genres: genre}, {bpm: { from: 100 }},
function(tracks){
var random = Math.floor(Math.random()*49);
SC.oEmbed(tracks[random].uri, {auto_play: true}, document.getElementById('target'));
});
console.log(genre);
}
window.onload = function(){
SC.initialize({
client_id: "6e6078f1408f62443f757b4c34d55e12"
});
var menuLinks = document.getElementsByClassName('genre');
for (var i = 0; i < menuLinks.length; i++){
var menuLink = menuLinks[i];
menuLink.onclick = function(e){
e.preventDefault();
playSomeSound(menuLink.innerHTML);
};
}
};
现在,我得到了错误:
window.onload = function(){
ReferenceError:窗口未定义
实际上,问题并非来自您。 javascript文件已正确加载(尝试添加以下代码:
function playSomeSound(genre){
SC.get('/tracks', {
genres: genre,
bpm: {
from: 100
}
}, function(tracks){
var random = Math.floor(Math.random()*49);
SC.oEmbed(tracks[random].uri, {auto_play: true}, document.getElementById('target'));
});
}
window.onload = function(){
SC.initialize({
client_id: '*******'
});
alert("Hello! I am an alert box!!");
var menuLinks = document.getElementsByClassName('genre');
for (var i = 0; i < menuLinks.length; i++){
var menuLink = menuLinks[i];
menuLink.onclick = function(e){
e.preventDefault();
playSomeSound(menuLink.innerHTML);
};
}
};
在您的javascript文件中
和html:
<html>
<head>
<title>SoundCloud API</title>
<script src="http://connect.soundcloud.com/sdk.js"></script>
<script src="test.js"></script>
</head>
<body>
<ul>
<li><a href="#" class="genre">EDM</a></li>
<li><a href="#" class="genre">classical</a></li>
<li><a href="#" class="genre">soundtrack</a></li>
</ul>
<div id="target"></div>
</body>
</html>
本教程创建于2012年(很久以前),也许脚本已经过时或类似的东西。
您应该在正文的最后,即</body>
标记之前加载所有JavaScript文件。 这将使JavaScript运行更加可预测和可靠,并且很可能是造成此问题的原因。 在极少数情况下,您希望在其他任何地方调用JavaScript。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.