javascript - 是连接一个 JS 库到另一个 'import' 的唯一方法吗?

标签 javascript jquery dependencies

免责声明:JS新手

我有一个依赖于 JQuery 的 JS 小部件。该小部件将嵌入到第 3 方站点中,但我弄清楚如何避免在小部件托管页面上声明对 jquery 的依赖:

第 3 方页面:

<head>

<script
  type="text/javascript"
  src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js"></script>

<script
  type="text/javascript"
  src="http://mydomain/mywidget.js"></script>

</head>

mywidget.js

jQuery(document).ready(function() {
     //do stuff
});

我不想在 3d 派对页面中包含 jquery.js,而是在 mywidget.js 中表达依赖关系(这样我就可以更改此依赖关系或添加/删除其他依赖关系,而无需更新小部件托管页面)

我尝试添加:

var script = document.createElement('script');
script.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js';
script.type = 'text/javascript';
document.getElementsByTagName('head')[0].appendChild(script);

到 mywidget.js 的顶部,但这不起作用 - jquery.js 确实在页面加载时加载,但无法识别“jQuery”。

有效的方法是将 jquery.js 和 mywidget.js 连接到一个 .js 文件中。但这似乎有点蹩脚——没有相当于吗?

import com.jquery.*;

谢谢!

最佳答案

在您的脚本中,您的小部件代码在附加脚本元素后立即执行,但需要等到脚本也下载并编译!要实现此目的,请使用以下代码:

script.onload = function(){

    // ------ Your widget code here ------

}

关于javascript - 是连接一个 JS 库到另一个 'import' 的唯一方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2680429/

相关文章:

javascript - 使用JavaScript从客户端浏览器上传到Google Cloud Storage

javascript - 如何精确获取页面的最大滚动位置?

javascript - 将数据保存在 JavaScript 数组中

javascript - 打开仅显示传递的打印机名称或 IP 的打印对话框?

c++ - 使用 cygwin 为 Windows 构建静态库

javascript - 将参数传递给 Ajax 安全方式

javascript - 如何通过静态代码分析显示所有JavaScript全局变量?

javascript - jQuery 仅在服务器发生变化时刷新 div

java - org.jivesoftware :smack:jar:3. 4.1-0cec571 的 POM 丢失

java - 如何调试 DOMImplementation 版本上的 java 依赖失败