从另一个javascript写一个javascript文件

Ank*_*kan 4 javascript file

我有两个网页.在第一页,我必须提交一份表格.使用表单中的值(使用嵌入式javascript),我需要生成另一个javascript文件,并在下一页中使用此生成的javascript文件.如何才能做到这一点?或者有更好的方法吗?

Mar*_*son 11

同源?

始终允许相同来源的文档相互交互.如果一个窗口或框架中的代码可以引用另一个窗口或框架,并且它们具有相同的来源,则一个执行上下文(窗口或框架......!)中的JavaScript可以与另一个执行上下文交互.Window当你调用时,你会得到一个外来对象的引用作为返回值window.open()!因此,使用该引用在该Window上设置您想要的任何变量或者根据需要加载新脚本.

跨文档消息传递

如果文档的来源不同,或者您没有引用其他执行上下文,则必须使用HTML5中引入的新API.它被称为"postMessage API"并且得到了很好的支持.即使IE 8也支持它!

您可以通过以下方式检查此功能的浏览器支持:

if (typeof window.postMessage !== undefined)
    console.log("postMessage API is supported!");
Run Code Online (Sandbox Code Playgroud)

以下是如何将hello world文本发送给虚拟收件人的示例:

window.postMessage("Hello world", "www.dummy.com");
Run Code Online (Sandbox Code Playgroud)

以下是您在其他地方托管的另一个JavaScript中监听此类消息的方法:

window.addEventListener("message", function(event) {
    if (event.origin === "www.dummy.com")
        console.log("Received message: " + event.data);
    }, true);
Run Code Online (Sandbox Code Playgroud)

IE11可能存在一些问题,在以前的版本中根本不支持.

动态加载JavaScript

每当你成功建立两者之间的通信通道,并且传递简单数据是不够的,那么你总是可以将完整的JavaScript传递给另一方并让他执行该脚本.请参阅 stackoverflow问题及其相关答案,以了解更多如何在接收端实施此类解决方案.

当然这些只是一些简短的例子,你应该谷歌休息.希望它至少帮助你找到一条路.