我构建了一个随机句子生成器 - 当你点击一个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 + " ");
jQuery("h5").append(randName + " ");
jQuery("h5").append(randAction + " ");
jQuery("h5").append(randPlace);
}
什么会导致它在本地工作,但不能在Github页面上工作?
答案 0 :(得分:0)
今天我看到了一个类似的问题,但不是因为 HTTP/HTTPS:当我发布到 GitHub 页面时,源 HTML 中的所有 CR/LF 字符都被删除了。对于带有结束标记的 HTML 来说可能没什么大不了的,但是当 整个 源页面都在一行上时,包括 JavaScript,那么 - JavaScript 中的任何嵌入注释都会导致之后的所有代码(直到 JavaScript 结束标记)没想到也被注释掉了。
在这种情况下,some more code
被视为评论:
code...
// a comment
some more code...
这是一个例子。之前,在编辑器中查看:
推送到 GitHub 后,CR/LF 显然被 GH-Pages 操作删除了:
注意在注释之后所有剩余的 JavaScript 是如何被禁用的::
(有些不受欢迎的)解决方案是删除注释或更好:在行的开头使用 /*
和 */
注释包装器而不是 //
。
layout: compress
;见https://github.com/jekyll/jekyll/issues/8660