'节点'未定义。我们如何在应用程序级别定义?

时间:2015-05-15 11:59:51

标签: javascript html internet-explorer scope global-variables

我面临着变量范围的一些问题。如果我们在一个js文件中定义,我们如何在另一个js文件中使用(这里我的意思是说如果我们想在整个应用程序中使用一个变量)?我们能做到吗?

示例:在我们的IE(IE-8和IE的低版本)中,我们遇到了节点类型的问题。我们在如此多的javascript文件中使用常量示例:Node.ELEMENT_NODE 这会给很少的浏览器带来问题(' Node'未定义) 我们必须将这个常数替换为" 1"在所有文件中。我们可以使用

在我们的起始html文件中定义,而不是在所有地方(如此多的文件)中替换它

以下示例在我们的启动html文件(即index.html)中,我们可以在任何其他javascript文件中使用Node.ELEMENT_NODE吗?它会影响我们使用Node.ELEMENT_NODE:

的所有其他javascript文件
<script type="text/javascript">
    if (!window.Node){
        Node = {  
            ELEMENT_NODE                :  1,
            ATTRIBUTE_NODE              :  2,
            TEXT_NODE                   :  3,
            CDATA_SECTION_NODE          :  4,
            ENTITY_REFERENCE_NODE       :  5,
            ENTITY_NODE                 :  6,
            PROCESSING_INSTRUCTION_NODE :  7,
            COMMENT_NODE                :  8,
            DOCUMENT_NODE               :  9,
            DOCUMENT_TYPE_NODE          : 10,
            DOCUMENT_FRAGMENT_NODE      : 11,
            NOTATION_NODE               : 12
        };
    }

2 个答案:

答案 0 :(得分:1)

创建一个文件,您可以在其中输入javascript代码。

// your-script.js
if (!window.Node){
    Node = {  
        ELEMENT_NODE                :  1,
        ATTRIBUTE_NODE              :  2,
        TEXT_NODE                   :  3,
        CDATA_SECTION_NODE          :  4,
        ENTITY_REFERENCE_NODE       :  5,
        ENTITY_NODE                 :  6,
        PROCESSING_INSTRUCTION_NODE :  7,
        COMMENT_NODE                :  8,
        DOCUMENT_NODE               :  9,
        DOCUMENT_TYPE_NODE          : 10,
        DOCUMENT_FRAGMENT_NODE      : 11,
        NOTATION_NODE               : 12};
    }
}

然后,在您网站的每个页面上添加此行:

<script src="your-script.js"></script>

最好将此行放在</body>(结束标记)之前。这将在加载其他所有内容后执行javascript。 当然,您仍然可以将此行放在您想要的位置。

注意:此处,该文件名为&#34; your-script.js&#34;,但您可以根据需要为其命名。

这将包括您所有页面中的代码。然后可以从任何地方访问它。

如果您仍然遇到此解决方案的问题,请在执行任何代码之前等待加载所有脚本:

window.onload = function ()
{
    // Javascript code goes here
}

答案 1 :(得分:0)

确保脚本位于每个页面的顶部。忘记将它放在关闭体标记之前或将其放在onload事件中。创建具有简单属性的普通Javascript对象不应在加载页面时产生明显的差异。