javascript - JS加载外部脚本并本地配置

标签 javascript html

假设有人想将以下内容插入他们的网站:

<script type="text/javascript" src="https://foo.com/plugin.js"></script>
<script type="text/javascript">

    Plugin.Setup({userId: 100});

</script>

在这种情况下,plugin.js 创建一个具有“Setup”方法的“Plugin”对象。

问题是会抛出以下错误:

Uncaught ReferenceError: Plugin is not defined

这是可以理解的,因为您无法调用 undefined object 的方法。

此方法可以解决问题:

<script type="text/javascript" src="https://foo.com/plugin.js"></script>
<script type="text/javascript">
    function initiatePlugin() {
        Plugin.Setup({userId: 100});
    }

    window.addEventListener ? window.addEventListener('load', initiatePlugin) : window.attachEvent && window.attachEvent('onload', initiatePlugin);
</script>

但是,我看到其他插件可以摆脱这种事情。例如 TypeKit 有以下嵌入代码:

<script src="https://use.typekit.net/sgye3663.js"></script>
<script>try{Typekit.load({ async: true });}catch(e){}</script>

他们所依赖的是外部脚本 https://use.typekit.net/sgye3663.js 加载速度比调用“Typekit.load”的本地脚本更快,在这种情况下如果抛出错误,Typekit 将永远不会加载。

这是进行插件设计的正确方法吗?或者等待窗口加载事件会更好吗?

最佳答案

最好等到页面完全加载,然后执行外部对象的方法

关于javascript - JS加载外部脚本并本地配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40683869/

相关文章:

javascript - 如何在javascript中重置图像尺寸? (MVC)

javascript - 新窗口中的链接是可选的

javascript - float :Right images break out of div

Javascript 代码失去焦点

javascript - 无法使用 Chrome 扩展程序弹出窗口中的按钮打开新选项卡

javascript - 反转 HTML 元素中子项的默认 z-index

jquery - 根据单击的 anchor 链接更改 URL

javascript - MVC 3 - 在客户端将非必需字段设置为必需字段

javascript - 您可以在同一个 ajax 调用中同时处理 json 和 html 数据类型吗?

html - 使用 Golang 将已解析的 html 字符串从数据库显示到模板