【问题标题】:How to get the user actions?如何获取用户操作?
【发布时间】:2016-08-01 12:39:34
【问题描述】:

我已经使用iframe 在我的应用程序中集成了 Dundas BI 查看器,我遵循了官方文档中给出的示例。我可以在我的应用中看到仪表板。

来自javascript.override.js 我可以覆盖 javascript 并获取 Dundas 对象,但我没有找到任何要订阅以捕获用户操作的事件。

我想获取用户交互(DOM 事件),有没有办法用适当的数据捕捉交互事件?

【问题讨论】:

    标签: javascript integration dundas


    【解决方案1】:

    Dundas BI 提供了许多用户事件,所以我认为更多的是关于您想要捕捉哪些事件。例如,如果您有一个名为 chart1 的图表,并且您想通过 javascript 捕获“点击”事件,您可以使用以下脚本通过 ready 操作来实现:

    $(chart1).bind(dundas.view.controls.AdapterConstants.clickEventName, function (e) {
      // here you can access e to get various information about the click event,
      //including the original jQuery event under e.originalEvent.
    });
    

    要获取某个 x,y 点的相关数据(例如来自上述示例 e.originalEvent),您可以使用以下内容:

    var jQevent = e.originalEvent;
    var relatedData = chart1.getContext({
    "position": {
      "e": jQevent,
      "left": jQevent.offsetX,
      "top": jQevent.offsetY
    }
    });
    

    请记住,您还可以随时通过以下方式访问当前控件上的数据:

    chart1.metricSetBindings[0].dataResult.cellset
    

    有关更多信息,您可以在此处查看许多脚本示例: http://www.dundas.com/support/support-center/support-articles/scripting/

    JavaScript API 文档可以在这里找到: http://www.dundas.com/support/api-docs/js/

    【讨论】:

    • 我想以通用方式拥有它,假设仪表板包含 10 个控件,如表格、图表等...我不想以不同方式处理每个控件,如果有任何单个事件处理单击仪表板的任何控件的仪表板,并应使用适当的数据触发给定的回调。假设用户点击了一个表格行,仪表板事件应该使用 {control:table1, action:rowSelection, rowData: {...}} 等数据触发。
    • 不,没有通用事件,因为没有来自没有子->父关系的元素的通用 DOM 冒泡事件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多