Javascript require(require.js)的多个实例可以很好地协同工作吗
我认为我需要在一个页面中支持不止一个require实例,为此我遇到了两个问题。我正在开发一项服务,该服务向外部客户端页面提供可嵌入的交互对象。最重要的设计标准是易于嵌入,尽可能少地假设客户机环境,并且在客户机页面的js/css世界中表现良好。客户端向其页面添加脚本标记以加载加载程序,然后使用内联脚本加载所需内容:Javascript require(require.js)的多个实例可以很好地协同工作吗,javascript,requirejs,Javascript,Requirejs,我认为我需要在一个页面中支持不止一个require实例,为此我遇到了两个问题。我正在开发一项服务,该服务向外部客户端页面提供可嵌入的交互对象。最重要的设计标准是易于嵌入,尽可能少地假设客户机环境,并且在客户机页面的js/css世界中表现良好。客户端向其页面添加脚本标记以加载加载程序,然后使用内联脚本加载所需内容: <script src="http://server.net/loader"></script> <script>
<script src="http://server.net/loader"></script>
<script>
special_require(["loader"], function(loader) {
loader.load({
object: "objectname",
target: "#where-i-want-it"
// other config settings
})
})
</script>
在大多数情况下,这种方法非常有效。我能够将我的需求与客户端页面中的任何需求完全分开,并且我轻描淡写地处理了客户端的js全局名称空间。但是:
我想可以。请参见此处的示例:您是否有任何选项可以在
IFRAME
中运行require并使用顶部窗口制作一个小型通信处理程序?我自己从未使用过,因此我不知道它是否有任何帮助,但是你检查过了吗?@YochaiAkoka我们试图避免这种情况,这样我们就可以让我们所有的交互用户无缝地将它集成到他们的页面中——例如,允许我们的名称空间css类通过他们的样式表进行样式设置。第一点(关于data main)看起来像的手表将导致一个选项,以防止扫描。
// Using strategy 2 from http://requirejs.org/docs/faq-advanced.html#rename to
// namespace require so it doesn't conflict with code on client sites.
;(function() {
// Here, we use Jinja to drop in require.js, which will define itself in
// this non-global namespace.
{% include 'loader/require.js' %}
require.config({
...
})
window.special_require = require
window.special_define = define
})()
special_define("loader", [...], function(...) { ... })