我们可以将特定的外部JavaScript文件加载到特定的div

时间:2014-09-01 06:11:52

标签: javascript html5

我的html文件中有两个div,我使用两个外部javascript文件。但问题是当我同时使用两个js文件时,我没有得到所需的功能。所以我想限制js的使用归档到特定的div

例如:div1应该只使用js1文件而div2应该只使用js2文件,这样就不会发生冲突,我得到了所需的功能。

我正在创建一个使用大量小部件的Web应用程序,这些小部件正从数据库加载。有一个管理面板,管理员可以添加小部件。我从中获取所有小部件的代码在同一个页面中的数据库。所以将来可能会发生这样的情况:添加了许多小部件后,他们发生了相关的js文件冲突并创建了问题。所以我想限制使用某些小部件

3 个答案:

答案 0 :(得分:1)

在页面(浏览上下文)中,只有一个JavaScript环境。为了获得您所指的那种隔离,您必须使用iframe或类似内容创建单独的浏览上下文。

答案 1 :(得分:0)

没有你说的不可能。但你可以做的是使用差异范围的diff javascripts。
如果他们是你自己写的js文件
1.然后简单地将所有变量更改为全局变量的属性 2.不要依赖窗口变量
3.如果您正在使用DOM操作,使用类名称/标记名称/属性值,这两个div共同更改它们,并更改div上的相应值。这样你就可以特意访问它们了。

如果它们是像jquery / _js / backbone这样流行的js库之一 使用提供的默认无冲突选项来加载单独的版本,然后在两个单独的div上单独使用它们。

答案 2 :(得分:0)

我不确定您是使用jquery还是普通的javascript。

如果是jquery那么你可以使用jquery noconflict。 创建单独的别名以使用jquery for div1& DIV2

    <script>

        var div1Alias = $.noConflict();
        var div2Alias = div1Alias.noConflict();
        jQuery(document).ready(function(){
             alert(div1Alias( "#div1" ).html());
             alert(div2Alias( "#div2" ).html());
        });
    </script>

http://learn.jquery.com/using-jquery-core/avoid-conflicts-other-libraries/ How do I implement JQuery.noConflict() ?