0

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

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

主要有趣的位:

  1. 我的嵌入脚本可能在一个人的页面中存在多次。
  2. 我有外部依赖项。
  3. 我希望能够google.maps.event.addDomListener使用我的脚本绑定到事件 (),因此我需要等到这些脚本加载完毕。
  4. 我想避免弄乱嵌入器的页面。

有没有共同的模式来实现这一目标?

4

1 回答 1

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>
于 2013-08-13T08:44:59.953 回答