繁体   English   中英

为什么我的HTML文件找不到我的JavaScript文件?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM