首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >脚本在Github页面上托管时停止工作。

脚本在Github页面上托管时停止工作。
EN

Stack Overflow用户
提问于 2016-08-13 10:56:53
回答 2查看 4.5K关注 0票数 1

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

它在我的本地机器上运行得很好:当我在浏览器中打开index.html时,一切都进行得很顺利。

但是,一旦我上传到GiHub并访问GitHub页面URL,生成器就会停止工作。点击按钮什么也做不了。

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

代码语言:javascript
复制
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>

代码语言:javascript
复制
<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页面上工作呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-13 15:48:44

如果打开开发人员工具窗格(在Chrome中,右键单击页面并选择检查),您将在网络控制台中看到此错误:

混合内容:在'https://bobbyfestgenerator.github.io/‘处的页面是通过HTTPS加载的,但是请求一个不安全的脚本'http://code.jquery.com/jquery-1.10.1.min.js’。此请求已被阻止;内容必须通过HTTPS送达。

您需要通过HTTPS而不是HTTP加载脚本。

之所以在本地工作,是因为您在本地计算机上使用file://方案(如果您有本地开发服务器,则使用http:// )。在这种情况下,浏览器通过HTTP加载外部脚本没有问题。

但是,Github页面通过HTTPS (一个安全连接)承载您的文件。出于安全考虑,如果页面托管在HTTPS上,浏览器将不会通过HTTP加载脚本。

只需更改<head>标记中的代码,通过HTTPS加载脚本:

代码语言:javascript
复制
<script src="https://code.jquery.com/jquery-1.10.1.min.js"></script>
票数 8
EN

Stack Overflow用户

发布于 2021-04-30 23:43:46

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

在本例中,some more code被视为评论:

代码语言:javascript
复制
    code...
    // a comment
    some more code...

下面是一个例子。如在编辑器中所看到的:

推到GitHub后,CR/LF显然被GH页面操作删除:

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38931964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档