0

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

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

但我被困在这一点上。将不胜感激任何帮助。

4

2 回答 2

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等。

于 2013-08-28T13:26:27.640 回答
0

事实上,这很简单。这里有一个 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-08-28T16:43:23.560 回答