触发上下文菜单,单击Microstrategy + Javascript

时间:2015-01-29 00:03:49

标签: javascript microstrategy

我目前在Microstrategy工作,这是一个BI工具平台,我正在尝试从上下文菜单中自动点击。由于某种原因,我无法使用代码自动触发点击。我希望我能得到帮助来弄清楚"这个"这样我就可以通过它。最终目标是传递要删除的任何grid_K47和页面刷新。下面点击菜单点击现实生活强制页面刷新,这是我想要它做的。

这就是我所知道的。

右键单击之前的对象位于表格中并显示此对象。请记住,这是所有MSTR渲染代码。

这是我右键点击的地方

<td id="grid_K47_0_1_1_1" class="c4_K47" dpt="1" dg="TRUE" ds="Area" oid="4216C7074826CF50BC81B8BDEFB99603" style="cursor: pointer; opacity: 0.5;" frmid="CCFBE2A5EADB4F50941FB879CCF1721C" title="Area. Drag object to perform pivot. Right-click for more options" frmlist="ID45C11FA478E745FEA08D781CEA190FE520DESCCCFBE2A5EADB4F50941FB879CCF1721C1-1" or="V" sty="ATT" fe="h1;4216C7074826CF50BC81B8BDEFB99603;UK & Ireland" ax="1" frmname="DESC" oty="12" mx="1" cx="[11,15,16,17,18,19,20,4,26,4,4,29,30,31,32,33,36,37,38]">Area</td>

然后上下文菜单拉起并有此部分

<tr id="cm1r10" height="18" style="cursor: pointer;" li="var bone = microstrategy.findBone(microstrategy.activeCXMenu); bone.processContextMenus('x');;" onclick="menuClick(this, 'grid_K47_0_GM1');" onmouseout="menuOff(this);" onmouseover="clearTimeout(oSubCTimer); menuOn(this); hideContextSubMenus(1);" ac="true" class="menu-row">

到目前为止,我已经测试过&#34;这个&#34;这是在menuclick功能。这是我最新的

HTML

<div style="background-color:#E1E1E1;"> <input type="button" name="RemoveGrid"  id="RemoveGrid" value="Submit" ></div>

的Javascript

<script>

$(document).ready(function() {
$("#RemoveGrid").on("click", function (e) {

RemoveGridjs();

});
});
</script>
<script>
function RemoveGridjs() {
var bone = microstrategy.findBone(microstrategy.activeCXMenu); 
bone.processContextMenus('x');;
menuClick('#grid_K47_0_1_1_1', 'grid_K47_0_GM1');
}
</script>

1 个答案:

答案 0 :(得分:0)

我为MicroStrategy做了一些JavaScript定制,弄清楚如何做事真是一场噩梦。 MicroStrategy,作为公司,不支持JavaScript自定义,因此没有相关的文档,也有在线,你找不到多少。

我不确定您正在使用哪个版本的MicroStrategy和哪个可视化(交互式工作与快递模式不同),无论如何我的建议是修改onclick以记录this,以便您可以了解这个对象是。

类似的东西:

jQuery('#cm1r10').click(
  function(){
              console.log(this)
  }
);

解决问题的另一种方法是不要尝试运行与菜单项关联的功能,而是模拟按钮点击它。

jQuery("#RemoveGrid").on("click", 
                         function (e) {
                                jQuery('#cm1r10').trigger('click');
                         }
);

如果屏幕上没有显示上下文菜单,不确定这是否有效,但我认为值得一试。

无论如何,我建议您在自定义别人代码时使用jQuery代替$