Javascript 页面:为具有 JSON 对象的另一个网站页面打开一个新选项卡

Javascript page: Open a new tab for another website page with JSON object

我在同一个域中有两个网站,mydomain.com。

https://firstSite.mydomain.com

https://seconSite.mydomain.com

我在 firstSite 中有一个名为 display 的网页,https://firstSite.mydomain.com/display

同样,我在 seconSite 中有一个名为 create 的网页,https://seconSite.mydomain.com/create

当 seconSite 中发生点击事件时,创建 html 视图,我需要打开一个新选项卡以显示 firstSite/display 页面。

在从seconSite/create打开firstSite/display时,我必须转移我的JSON对象,这个对象不小。它的最小长度是 >5000,所以很难通过 URL 参数传输,

是否可以打开一个新选项卡以加载具有大 JSON 对象的 https://firstSite.mydomain.com/display from https://seconSite.mydomain.com/create 单击事件?

有没有一种方法可以在不涉及数据库的情况下将 JSON 存储在某个地方并取回它?

你可以使用Window.postMessage

类似

用于 /create 的 JS:

clickElement.addEventListener('click', (e) => {
  e.preventDefault();
  displayWindow = window.open('https://firstSite.mydomain.com/display');
  displayWindow.postMessage(jsonObject, '*');
});

用于/显示的 JS

window.addEventListener('message', (event) => { console.log(event.data); });

这是要点...它可能不是 copy/paste 代码,但应该可以帮助您了解大部分内容。您可能还需要执行其他一些实现细节(setting/checking 来源、消息返回 /create 等)。您可以在下面的链接中找到这些详细信息。

  1. https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage
  2. https://developer.mozilla.org/en-US/docs/Web/API/Window/open
  3. https://developer.mozilla.org/en-US/docs/Web/API/Window/opener