【问题标题】:Can't Include External Javascript In File不能在文件中包含外部 Javascript
【发布时间】:2012-11-19 07:22:28
【问题描述】:

我是 PHP 新手,对任何类型的服务器管理都非常非常陌生。我从 XAMPP 3.1.0 for Windows 运行并使用 PHP 5.4 版。

我的 PHP 脚本执行得很好,但无论出于何种原因,我似乎都无法像这样包含外部 js 文件:

<script type="text/javascript" src="core.js"></script>

但是,我可以毫无问题地做到这一点。

<script type="text/javascript">
    alert("some alert");
</script>

有人知道怎么回事吗?

[编辑:这是我的文件夹结构。我的文件的路径是: C:\xampp\htdocs\AllocatedSpendingPlan\ - 它们都位于根目录。]

这是我的文件:

[编辑:我从带有 src 属性的脚本标签正文中删除了代码,但仍然无法正常工作。]

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
        <script type="text/javascript" src="core.js"></script>
        <script type="text/javascript">
            alert("working");
        </script>
    </head>
    <body>
        There is stuff here.
    </body>
</html>

当我查看 Firefox 中的“网络”选项卡时,我显示文件已下载,但没有任何脚本正在执行,并且在我去调试时文件本身也没有加载。

这是脚本调试器,显示没有加载文件:

最后,这是我的 Net 标签,显示文件已下载:

[编辑:已修复。这是我的命名空间声明中的一个错误。当我的 var 应该是一个对象字面量时,我将它声明为一个函数。]

这是正确的代码。其他一切都很好。

var Core = {
    namespace: function(ns){
        var parts = ns.split("."),
        object = this,
        i, len;
        for (i=0, len=parts.length; i < len; i++) {
            if (!object[parts[i]]) {
                object[parts[i]] = {};
            }
            object = object[parts[i]];
        }
        return object;
    }
};

Core.namespace("Budgeting.Tools.AllocatedSpending");

Core.Budgeting.Tools.AllocatedSpending = function(){
    return {
        greet: function(){
            alert("hello");
        }
    };
};

var d = new Core.Budgeting.Tools.AllocatedSpending();
d.greet();

【问题讨论】:

  • 你确定你有正确的 javascript 文件路径吗?

标签: javascript html xampp


【解决方案1】:

看到你的截图后,

  1. 当您使用src="" 属性时,您应该将&lt;script&gt; 标记的主体留空。所以从那里删除alert("I am here, aren't you!")
  2. 在路径中找不到您的core.js。让我们知道文件夹路径。

【讨论】:

  • 我将脚本添加到正文中以查看它是否正在执行。我删除了它,它仍然无法正常工作。 javascript 文件的路径(来自我的本地计算机)是:C:\xampp\htdocs\AllocatedSpendingPlan\core.js,html 文件是 C:\xampp\htdocs\AllocatedSpendingPlan\index.html。
  • 好的。在这种情况下,如果您使用的是 Firefox,请按 Ctrl + U 并单击 core.js
  • 完成。我可以看到文件的来源,但它对我的页面不可用。它在 IE 中也不起作用。
【解决方案2】:
  • 检查您的控制台是否有错误(对于 Chrome/Windows,请按 CTRL+SHIFT+I)。
  • 这可能是 404 错误或您的 core.js 文件中的错误。确保路径正确:&lt;script type="text/javascript" src="/path/to/core.js"&gt;&lt;/script&gt;

  • 脚本可能被包含得太早/太晚。要对此进行测试,请确保 &lt;script&gt; 块位于 &lt;head&gt;

【讨论】:

    【解决方案3】:

    这是一个简单的编码错误。我将命名空间声明为函数而不是对象文字。代码应该是这样的:

    var Core = {
        namespace: function(ns){
            var parts = ns.split("."),
            object = this,
            i, len;
            for (i=0, len=parts.length; i < len; i++) {
                if (!object[parts[i]]) {
                    object[parts[i]] = {};
                }
                object = object[parts[i]];
            }
            return object;
        }
    };
    

    代替:

    var Core = function () {
        namespace: function(ns){
            var parts = ns.split("."),
            object = this,
            i, len;
            for (i=0, len=parts.length; i < len; i++) {
                if (!object[parts[i]]) {
                    object[parts[i]] = {};
                }
                object = object[parts[i]];
            }
            return object;
        }
    };
    

    只见树木不见森林……

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-13
      • 2018-02-27
      • 2017-10-25
      • 2020-03-19
      • 2017-09-10
      • 2011-06-15
      • 2020-09-25
      • 1970-01-01
      相关资源
      最近更新 更多