0

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

这是我所知道的。

右键单击之前的对象在表格中并显示此。请记住,这是所有 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">

到目前为止,我已经测试了 menuclick 函数中“this”的不同值。这是我最新的

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>
4

1 回答 1

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而不是$在自定义其他代码时使用

于 2015-01-29T10:11:52.010 回答