提供嵌入脚本的最佳方法是什么?

时间:2013-08-12 16:04:18

标签: javascript google-maps-api-3

我提供可嵌入的内容,我使用脚本标记分发。当用户在其页面的HTML中包含脚本标记时,它会在执行时将相关内容注入DOM。它们可能在同一页面中包含多个嵌入脚本。

嵌入脚本有许多依赖项(jQuery,Google jsapi,Google Fusion表)。我希望能够加载这些,如果它们尚未被嵌入脚本的先前实例或编写页面其余部分的人加载。

主要有趣的一点:

  1. 我的嵌入脚本可能会在一个人的页面中多次出现。
  2. 我有外部依赖。
  3. 我希望能够使用我的脚本绑定到事件(google.maps.event.addDomListener),所以我需要等到这些脚本加载完毕。
  4. 我想避免弄乱嵌入者的页面。
  5. 是否有共同的模式来实现这一目标?

1 个答案:

答案 0 :(得分:0)

由于我使用的是Google JS Loader并且依赖项与之兼容,我正在使用它。

<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">

function things_loaded() {
    if(window.THING_MAPS) {
        for (var mapI = 0; mapI < window.THING_MAPS.length; mapI++) {
            window.THING_MAPS[mapI]();
        }
        window.THING_MAPS = [];
    }
}

if (!window.THING_MAPS_LOADED) {
    google.load("jquery", "1.7.0");
    google.load("maps", "3", {other_params:'sensor=false', callback: things_loaded});
    window.THING_MAPS_LOADED = true;
}

</script>