【问题标题】:Passing arguments to a new window after click on a Shield UI JavaScript pie chart单击 Shield UI JavaScript 饼图后将参数传递到新窗口
【发布时间】:2013-08-28 12:29:58
【问题描述】:

我在网页上使用 Shield UI JavaScript 图表。图表的当前类型是饼图。我需要的是在用户点击饼图后为他们提供更多数据。数据将在单独的窗口中提供,我还需要在打开的文档的 URL 中传递一些参数。我尝试了一些技巧;但是它们都没有正常工作。我使用 pointSelect 事件

            events: {
                pointSelect: function(args) {
                }
            },

但我被困在这一点上。将不胜感激。

【问题讨论】:

  • 您是指新的浏览器窗口吗?您当前打开新窗口的代码是什么?
  • 这是我使用的 window.open 方法,但是将它与图表放在一起是我的问题。否则打开一个新窗口没有问题。

标签: javascript shieldui


【解决方案1】:

如果您使用window.open 打开窗口,您可以在之后引用该窗口:

var w = window.open("http://www.google.com/", "popup");

// wait for the window to load and then so something
w.onload = function(){
    w.doSomething();
};

https://developer.mozilla.org/en-US/docs/Web/API/window.open

如果只需要传递一些参数,也可以使用location.hash,例如链接page.html#/some/variables/here,然后拆分location.hash等。

【讨论】:

    【解决方案2】:

    事实上,这很简单。这里有一个 pointSelect 事件的可用参数列表:https://www.shieldui.com/documentation/javascript.chart/events/pointSelect 让我们拿起 args.point.x 参数。这是切片的编号,从第一个开始。我们可以使用链接集合,或者我们可以将参数的值分配给链接——这主要是一个选择问题。例如,您可以使用以下代码:

                events: {
                    pointSelect: function(args) {
                        var URL="http://www.url.com/?parameterA="+args.point.x;
                        var WindowName="Details"+args.point.x;
                        window.open(URL, WindowName, "height=200,width=200");
                    }
                },
    

    由于您提到的是一个新窗口,而不是选项卡,因此我正在为窗口的尺寸添加值,因此它实际上显示为一个新窗口而不是选项卡。 有一个重要的细节。您是否需要为每个切片显示一个单独的窗口,因此您需要更改它的名称:

    var WindowName="Details"+args.point.x;
    

    或者您可以使用一个窗口,如果该窗口保持打开状态,一旦用户单击另一个选项卡,就会显示下一个数据:

    var WindowName="Details";
    

    【讨论】:

      猜你喜欢
      • 2013-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-20
      • 1970-01-01
      • 1970-01-01
      • 2019-01-31
      相关资源
      最近更新 更多