我有以下的javascript代码,当我加载报告时它会触发IronPython脚本。
我唯一的问题是,由于某种原因我不知道它(它触发脚本)几次。
有人可以帮助我吗?下面是剧本:
var n=0;
$(function () {
function executeScript() {
if (n==0){
n=n+1;
now = new Date();
if (now.getTime()-$('#hiddenBtn input').val()>10000){
$('#hiddenBtn input').val(now.getTime());
$('#hiddenBtn input').focus();
$('#hiddenBtn input').blur();
}
}
}
$(document).ready(function(){executeScript()});
strong text});
如果您需要更多信息,请告诉我们。 在此先感谢!!!
答案 0 :(得分:1)
我在Javascript执行多次时遇到过类似的问题。 Spotfire似乎不止一次实例化JS,它可能会引起一些有趣的行为......
在我看来,最好的解决方案只有在用户通过链接(而不是浏览库)访问文档时才有效。传递配置块以设置具有当前时间戳的文档属性,该时间戳将执行您的IP脚本。这是最坚实的实施。否则,您可以尝试这样的事情:
// get a reference to a container on the page with an ID "hidden"
var $hidden = $("#hiddenBtn input");
// only continue if the container is empty
if !($hidden.text()) {
var now = Date.now();
$hidden.text(now)
.focus()
.blur();
|}
这与您发布的代码基本相同,但不是依赖于var n
,而是指望输入#hiddenBtn > input
为空。有一点需要注意,在保存文档之前,您必须确保此字段为空
一个附加解决方案是使用数据函数来更新文档属性,如@ user1247722在其答案中所示:https://stackoverflow.com/a/40712635/4419423