【问题标题】:Passing text to a popup window opened in a JS function [duplicate]将文本传递到在JS函数中打开的弹出窗口[重复]
【发布时间】:2016-05-23 07:33:50
【问题描述】:

在我的应用程序中,我需要打开一个弹出窗口并显示一些来自 Javascript 函数的结果。我使用以下命令打开弹出窗口:

var popup=window.open('popup.html', 'width=500', 'height=500');

其中popup.html 是一个html 页面,它调用chart.js 库来显示一些图表。我需要将数据传递到此窗口才能显示正确的图表。我尝试了很多示例,但没有一个有效。我该如何解决这个问题?

卢卡

【问题讨论】:

  • 在#hash 或?search 中传递信息。你的参数也错了var popup=window.open('popup.html#parmtopass', 'windowName', 'width=500,height=500');
  • @anu - 不是很好的复制品
  • 如果页面在同一个域中,请将 JSON 保存在全局变量中,并从子级以 opener.jsonvar 访问它 - 或创建一个 getter 并调用它:opener.getJsonVar()
  • 这似乎是一个有趣的答案,谢谢,我会试一试。
  • 我尝试了一个简单的全局字符串和一个提供简单字符串的简单函数,用opener.variable/opener.gimmeSomeText()调用它们,图形不加载。

标签: javascript html popup parameter-passing chart.js


【解决方案1】:

您可以在 url 哈希中传递基本数据,将您的 JS 更改为

var popup=window.open('popup.html#MY_DATA', 'myWindow','width=500,height=500');

然后在 popup.html 页面中,您可以通过查看 location.hash 变量来访问它:

window.location.hash
//This will be "#MY_DATA"

【讨论】:

  • 所以我可以简单地在我的JS函数中声明一个var text="someLongText";,用window.open函数的'popup.html#text'参数传递它,然后在popup.html页面中包含的脚本中使用它, 像var text2=window.location.hash;?
  • 不,您必须将其作为 'popup.html#someLongText' 或 'popup.html#'+text 传递
  • @mplungjan 谢谢,通常我并不真正关心我的代码,但无论如何谢谢。
  • 好的,知道了。问题是 someLongText 是一个非常长的 JSON 对象。由于我不知道参数传递的这种可能性,所以传递的字符串的长度有一些限制?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-11-12
  • 1970-01-01
  • 1970-01-01
  • 2017-07-21
  • 1970-01-01
  • 2015-09-22
相关资源
最近更新 更多