Tableau Javascript API workbook.activeSheet()

Tableau Javascript API workbook.activeSheet()

本文关键字:activeSheet workbook Javascript API Tableau      更新时间:2023-09-26

我可能在这里错过了一些非常明显的东西,但是为什么下面没有写任何东西到日志?(jsfiddle在这里- http://jsfiddle.net/hiwilson1/qk9cjuh2/-虽然它不适合我)

<html>
<head>
<style>
#tableauViz {
    width: 1500px;
    height: 500px;
}
input[type="button"] {
    margin: 5px;
}
</style>
<script type="text/javascript" src="https://online.tableau.com/javascripts/api/tableau-2.0.0.min.js"></script>
<script src="http://d3js.org/d3.v3.min.js"></script>
<script>
window.onload = function() {
    // append visualisation container
    d3.select("body").append("div").attr("id", "tableauViz")
    // function to build visualisation.
    function initializeViz() {
        var placeholderDiv = document.getElementById("tableauViz");
        var url = "http://public.tableau.com/views/WorldIndicators/GDPpercapita";
        var options = {
            width: placeholderDiv.offsetWidth,
            height: placeholderDiv.offsetHeight,
            hideTabs: false,
            hideToolbar: true,
            onFirstInteractive: function () {
                workbook = viz.getWorkbook();
                activeSheet = workbook.getActiveSheet();
            }
        };
        viz = new tableau.Viz(placeholderDiv, url, options);
    }  
    initializeViz();
    // switch worksheet function.
    function switchTab(val) {
        workbook.activateSheetAsync(val);
    }    
    d3.select("body").append("input")
        .attr("type", "button")
        .attr("value", "click me")
        .on("click", function() {switchTab("GDP per capita map")})
    console.log(workbook.activeSheet)
}
</script>
</head>
<body>
</body>
</html>

我已经构建了可视化,然后装配了一个按钮来运行一个更改工作表的小函数。我可以从那个函数中访问工作簿对象,但是这个函数没有什么特别之处赋予它访问工作簿对象的权利。为什么我不能也输出有关工作簿对象的信息到日志?

我收到的错误是"参考错误:工作簿未定义"。如果没有定义,函数怎么使用它?!

您的workbook变量直到onFirstInteractive回调被调用才被创建,但是您对console.log()的调用是在初始化tableau.Viz之后立即创建的。初始化该对象的行为不会导致回调被调用——回调将在稍后发生。

根据你像那样调用console.log的原因,将该调用移动到onFirstInteractive回调的末尾可能是有意义的。