当点击公共或私人书签时,Spotfire会在用户创建书签之前将用户带到用户所在的页面。如果用户再次选择书签,则会将其带到正确的页面,并加载正确的度量。
无论是单击GUI书签还是单击书签链接,都会发生这种情况。事实上,如果点击一个链接,几乎不可能到达正确的书签页面(用户必须快速点击非常)。
经过大量的反复试验后,我将其限制为一些HTML / Javascript功能。在此仪表板中,用户使用自定义导航栏进行导航。如果用户创建书签,使用自定义导航栏更改页面,然后单击书签,它将无法正常工作。如果用户创建书签,单击页面选项卡然后单击书签,它将正常工作。我使用Demo here来构建更改页面的python脚本(由更改的Document Property启动)。我能够在示例点火报告中重现这个错误。以下HTML代码适用于导航栏:
<style>
.topnav {
overflow: hidden;
background-color: #313814A;
}
.topnav a {
float: left;
color: #f2f2f2;
text-align: center;
padding: 5px 16px;
text-decoration: none;
font-size: 16px;
font-family:Calibri;
}
.topnav a:hover {
background-color: #ddd;
color: black;
cursor: pointer;
}
.topnav a.active {
background-color: #ddd;
color: black;
}
</style>
<div class="topnav">
<a onclick="SBAReporting()">Reports</a>
</div>
<!-- input field that changes the Doc Prop that fires off the python script-->
<div id="navigateToPage" style="display:none"><SpotfireControl id="f9cc2258568d415383d842064287993a" /></div>
<script>
function SBAReporting() {
randInt = Math.floor(Math.random() * (100+1))
myJSObject = "Reporting";
document.getElementById('navigateToPage').firstChild.value = myJSObject + randInt;
$("#navigateToPage input").focus();
$("#navigateToPage input").blur();
}
</script>
我对正在发生的事情的理论如下:
我试图通过添加location.reload();
来刷新整个页面(并希望该变量),但这不起作用。有没有办法让Spotfire刷新页面?对可能无法正确更新的内容有任何见解?
tl; dr 似乎在Spotfire中改变页面的pythonic方式不会改变一些幕后变量,让Spotfire知道用户真正在哪个页面上。这种情况发生在Spotfire提供的示例报告和Spotfire提供的Python脚本中。我需要一种更好的方法让Spotfire知道用户所在的页面。
更新 TIBCO已记录缺陷。仍然愿意解决问题。