2016-07-05 49 views
3

我很新的编码,我试图完成Codecademy的JavaScript课程。我已经学习了一些关于HTML/CSS的知识,而且我几乎完成了JavaScript。我研究过有类似问题的人,但这些解决方案通常涉及JQuery,我从未学过。为什么我的JavaScript链接不能从HTML中调用?

这里是我的HTML(的index.html):

<!DOCTYPE html> 
<html> 
    <head> 
    <script type="text/javascript" src="main.js"></script> 
    </head> 
    <body> 
    </body> 
</html> 

这里是我的JavaScript的开头:

alert(); 

// Acquire character's name and check to make sure it's a string 
var charName = prompt("NASA Receptionist: 'Welcome to Mission Control. 
May I have your last name, please?'"); 

var nameCheck = function(charName) { 
    while (typeof charName === "number") { 
     charName = prompt("NASA Receptionist: 'Surely, your name is not 
a number... Please, may I have your last name?'"); 
    } 
}; 

nameCheck(charName); 

注意:index.html的是在同一文件夹中main.js

当我打开index.html时,没有任何反应,甚至没有打开alert()。我错过了什么吗?

+1

你觉得在控制台任何错误? – Rayon

+0

我不完全确定这意味着什么。我正在使用Sublime Text 2创建文件。我知道如何查看我的文件的唯一方法是尝试在我的Web浏览器中运行它... – Goeff

+0

Google Developer Tools中存在“意外令牌”错误。我拿了;出我的while循环,并修复它! – Goeff

回答

6

您的脚本中有错误,因为无法使用转义斜杠在多行中生成javascript语句。

我得到这个错误:

SyntaxError: unterminated string literal

var charName = prompt("NASA Receptionist: 'Welcome to Mission Control.

下面是修改代码:

alert(); 

    // Acquire character's name and check to make sure it's a string 
    //The \r\n\ will format the string in prompt and make it appear in new line 
    var charName = prompt("NASA Receptionist: 'Welcome to Mission Control. \ 
         \r\n\May I have your last name, please?'"); 

    var nameCheck = function(charName) { 
     while (typeof charName === "number") { 
      charName = prompt("NASA Receptionist: 'Surely, your name is not \ 
           \r\n\a number... Please, may I have your last name?'"); 
     } 
    }; 

    nameCheck(charName); 
+2

关闭....但可能不是什么OP后。由于字符串第二行的前导空格(https://jsfiddle.net/3mawcL9y/),警报中的文本格式不正确。我建议使用换行符替代'\ r \ n'(https:// jsfiddle.net/3mawcL9y/1/) –

+0

@JonP我可以使用\ n \来达到同样的效果,我可以吗? – shivgre

+1

'r \ n \是最安全的选择。不同的操作系统'使用不同的行结束字符! (http://stackoverflow.com/questions/15433188/r-n-r-n-what-is-the-difference-between-them) –

2

检查浏览器的源文件main.js是否加载。

使用的警报(“=装=”)检查警报被称为与否

+0

即使是一个alert();会显示一个空警报 – shivgre

+0

而且我看到upvote .. _WHY_? – Rayon

2

如果你甚至没有得到语法错误,那么我想你也许引用main.js不正确。你确定你在index.html的同一个目录下有这个吗? 另外,每次我运行它,typeof方法返回“字符串”,无论我输入一个数字或不。

alert(typeof charName);

+0

感谢您揭露此事。以后我得弄清楚别的。现在,我需要修复我的html没有访问我的js。我的main.js文件与我的index.html位于同一个文件夹中... – Goeff

相关问题