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.jsregister.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 执行的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript基础语法

断点未使用 PHP/XAMPP/NetBeans/Moodle 触发

XAMPP - 未配置会话缓存 [提示:SSLSessionCache]

数据未使用 XAMPP 存储在 mySQL 数据库中

CSS 样式表更改未显示在 localhost (XAMPP)

使用 XAMPP 在 Windows 8 上安装 Wordpress 但 PHP 未运行