javascript - 脚本之间的通信 |三种方法

标签 javascript

如何在两个脚本之间正确传递数据。

在这种特殊情况下,我在一个脚本中有一个元素,但我想将它附加到另一个脚本中。

我能做到这一点的最简单方法是使用全局窗口对象作为中间人。

但全局不是最佳实践。

将此元素传递给另一个脚本的正确方法是什么?

这两个脚本都封装在模块模式中。

脚本 0 创建元素点

var element = document.createElement( "div" );
element.innerHTML = response_text;

脚本 1 添加元素点

Vi.sta = {

    // implemented in the boot loader - shared global space - appended child already - you don't have to append until now.
    // Static data has already been composed. 
    // Pull off window and append or best practice

};

两者都封装在模块模式中

(function(){ 
    // the code here 
})()

最佳答案

所有 JS 脚本都在全局范围内运行。当文件被下载到客户端时,它们在全局范围内被解析。

如果你有

// File_1.js
var myObj = { colour : "blue" };

没有什么能阻止你这样做:

// File_2.js
var otherObj = { colour : myObj.colour };

只要 File_1.js 在 File_2.js 之前加载

如果您使用命名空间,即:MYNAMESPACE = {}; 并且每个文件都通过模块扩展您的命名空间(而不是指从立即调用函数返回接口(interface)的“模块模式”),然后检查模块的存在。

如果您正在为命名空间应用程序编写模块,并且确实需要从一个模块到另一个模块访问变量,那么您应该为此提供一个接口(interface)

如果您是SANDBOXING 模块,那么您需要为它们提供一个类似于service-locator代理 "registry",或者开发一个基于mediator-patternmessaging-system

关于javascript - 脚本之间的通信 |三种方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12097381/

相关文章:

javascript - 将数据表打印为默认表

javascript - 如何在javascript中确定计算机屏幕的分辨率?

javascript - Angular - innerHTML,转义小于/大于字符,但保持 <br/> 不变

javascript - SEO 谷歌链接跟踪

javascript - 如何在滑动关闭您单击的 div 的同时滑动打开该 div?

javascript - 内存中的 HTML 元素和插入到 DOM 后的显示问题

javascript - Firefox 中未定义图像 ID

javascript - 最好的叠加方式

javascript - 如何在 Canvas 对象保持在同一位置的同时旋转该对象

序列号的 Javascript setInterval