javascript - “节点”未定义。我们如何在应用程序级别定义?

标签 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
        };
    }

最佳答案

创建一个文件来放置 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。 当然,您仍然可以将此行放在您想要的位置。

注意:这里的文件名为“your-script.js”,但您可以根据需要命名。

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

<小时/>

如果您对此解决方案仍有问题,请等待所有脚本加载后再执行任何代码:

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

关于javascript - “节点”未定义。我们如何在应用程序级别定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30259006/

相关文章:

javascript - 克隆元素的增量名称标签

javascript - 如何在 javascript/vuejs 中的 map 中使用 if 语句

javascript - 如何使用pubnub timetoken处理页面刷新

javascript - 如何在水平窗口调整大小时缩小网页的边距?

javascript - 旋转动画悬停但在悬停时移动鼠标 ->取消

html - IE10 模糊使用 SVG 和背景大小 : cover;

css - 重新创建错误折叠的内容 IE

javascript - 在 Laravel 中插入 javascript 参数翻译在甜蜜的警报错误中

javascript - 如何正确清除和添加与 Internet Explorer 一起使用的选项?

internet-explorer - 在 Internet Explorer 7 中打开多个页面的 Windows 控制台命令