Javascript 未使用 XAMPP 执行
Posted
技术标签:
【中文标题】Javascript 未使用 XAMPP 执行【英文标题】:Javascript not executing using XAMPP 【发布时间】:2019-09-14 05:14:10 【问题描述】:在我的 html 文档(位于 xampp/htdocs
目录中)中,我使用了一个外部 .js 文件。 .js 文件与我的 html 文件位于同一目录中。我只是想使用document.write()
函数,它没有打印任何东西。
我不明白我做错了什么。什么问题?
HTML 文件
<!DOCTYPE html>
<html>
<head>
<?php include 'include/head_elements.html'?>
<script type="text/javascript" src="register.js"></script>
</head>
<body>
<h1>Company Account creation</h1>
<div id="registration_menu">
<!--Elements are added and removed dynamically using JS-->
</div>
<script>
hello();
load_element_group("email_verification");
</script>
</body>
</html>
JS 文件
function hello()
document.write("Hello world")
【问题讨论】:
你创建了一个函数,但你没有运行它。 @StevenStark 我在正文部分添加了一个脚本标签并将其命名为 您看到我在之前的评论中添加的内容了吗?最可能的原因是脚本未加载。 Windows 有一个隐藏已知扩展的选项,因此您应该仔细检查您的脚本是否称为register.js
而不是 Register.js
或 register.js.js
。
@tresf 它最终成为某种安全问题。我使用的是 chrome。现在工作正常。感谢您的所有帮助
它在 IE 上运行良好(如果你通过 localhost/ 打开它)。究竟是什么安全问题?你是怎么解决这个问题的?
【参考方案1】:
Internet Explorer 的安全策略可能会阻止某些脚本在本地计算机上运行。
有一些方法可以避免这种情况——例如将 XAMPP 网站添加为受信任的位置——但这通常会变得很棘手,因为默认的“Intranet 区域”是在 PC 上自动配置的,并且修改它可能会产生其他后果(不同的区域采用不同的设置,例如将 NTLM 凭据传递到本地网站)。
另见https://***.com/a/7038775/3196753
通常的快速解决方法是将完全限定域名 (FQDN) 添加到 URL,但根据区域设置,这仍可能会导致问题。
最终的解决方案,也是许多开发人员依赖的一种解决方案,是实际使用已注册的 DNS 地址,例如 http://localtest.me/,它指向本地主机并应使用“Internet 区域”。
正如Chris G
在 cmets 中指出的那样,这并不典型。通常localhost
可以毫无问题地使用,所以我提供了一个示例Local Intranet
设置,它可能会导致这种情况:
【讨论】:
或者只使用localhost
,它在 IE(和 Chrome)中适用于我。您的屏幕截图显示您已在本地打开文件,在这种情况下,IE 确实会显示警告。这是关于 XAMPP 的,这意味着有一个基于 PHP 的 Web 服务器来避免已经存在的这类问题(根据之前的评论,OP 也在使用它)。
添加到答案的示例安全设置。
对不起,但对我来说,即使所有安全设置为“高”,在 IE11 上通过 localhost
打开页面也可以正常工作。没有警告。显示“Hello World”。另外,OP 正在使用 Chrome。
有趣。使用“高”时,Hello world
在我的本地消失。 Internet 区域有自己的自动检测逻辑(受三个复选框的影响),更糟糕的是,域和非域 PC 之间存在不同的静默安全更改。不管这些差异如何,Chrome 永远不会(嗯,很少——它可以阻止 SSO,但从未见过它破坏 JS 包含)受到影响。如果你不赞成这个答案,我一点也不生气,我认为 IE 是罪魁祸首。
你是对的;我在“受信任的站点”中有localhost
。不过,OP 使用的是 Chrome,所以问题出在其他地方。如果我在 Chrome 的设置中手动阻止 localhost
的 JavaScript,我可以重现 OP 的问题,但 OP 说他得到了 hello is not defined
。我的钱打错了。以上是关于Javascript 未使用 XAMPP 执行的主要内容,如果未能解决你的问题,请参考以下文章
断点未使用 PHP/XAMPP/NetBeans/Moodle 触发
XAMPP - 未配置会话缓存 [提示:SSLSessionCache]