在Github Pages上托管时脚本停止工作

时间:2016-08-13 10:56:54

标签: javascript jquery html

我构建了一个随机句子生成器 - 当你点击一个HTML按钮时,会在它下面生成一个随机句子。这一代由一个简单的脚本和jQuery提供支持。

它在我的本地机器上工作正常:当我在浏览器中打开index.html时,一切顺利。

但是一旦我上传到GiHub并访问GitHub页面URL,生成器就会停止工作。单击该按钮不会执行任何操作。

这是脚本(它全部包含在index.html文件中):

<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>

<script> function sentenceLoad() {

    //declare arrays
    var nouns = ['Mulder, Scully, and']; 
    var names = ['Assistant Director Skinner', 'the Cigarette Smoking Man', 'Alex Krycek'];
    var actions = ['are running from alien bounty hunters', 'are tracking a shapeshifter', 'are hunting a mutant serial killer'];   
    var places = ['in the woods of New Jersey', 'in a government bunker', 'in Olympic National Forest'];       
    //shuffle through contents of each array, picking one entry per array
    var randNoun = nouns[Math.floor(Math.random() * nouns.length)];
    var randName = names[Math.floor(Math.random() * names.length)];
    var randAction = actions[Math.floor(Math.random() * actions.length)];
    var randPlace = places[Math.floor(Math.random() * places.length)];
    //place the random entry into the appropriate place in the HTML
    jQuery("h5").html("");
    jQuery("h5").append(randNoun + "&nbsp;");
    jQuery("h5").append(randName + "&nbsp;");
    jQuery("h5").append(randAction + "&nbsp;");
    jQuery("h5").append(randPlace);
}

什么会导致它在本地工作,但不能在Github页面上工作?

1 个答案:

答案 0 :(得分:0)

今天我看到了一个类似的问题,但不是因为 HTTP/HTTPS:当我发布到 GitHub 页面时,源 HTML 中的所有 CR/LF 字符都被删除了。对于带有结束标记的 HTML 来说可能没什么大不了的,但是当 整个 源页面都在一行上时,包括 JavaScript,那么 - JavaScript 中的任何嵌入注释都会导致之后的所有代码(直到 JavaScript 结束标记)没想到也被注释掉了。

在这种情况下,some more code 被视为评论:

    code...
    // a comment
    some more code...

这是一个例子。之前,在编辑器中查看:

Before

推送到 GitHub 后,CR/LF 显然被 GH-Pages 操作删除了:

enter image description here

注意在注释之后所有剩余的 JavaScript 是如何被禁用的::

enter image description here

(有些不受欢迎的)解决方案是删除注释或更好:在行的开头使用 /**/ 注释包装器而不是 //