javascript - 如何执行一个js函数onload?

标签 javascript initialization tableau-api onload

下面是一个功能齐全的工作代码。当我复制粘贴到文本文件时 testFile.html然后用浏览器打开它就可以正常工作了。

但我想要 selectCollegeinitViz 之后立即执行的函数功能

我试过了

<body onload="initViz();selectCollege('Engineering');"> . . .

但是没有用。我怎样才能制作 selectCollegeinitViz 之后立即执行的函数?

<!DOCTYPE html>
<html>

<head>
    <title>Select Marks</title>

    <script type="text/javascript" 
        src="https://public.tableau.com/javascripts/api/tableau-2.min.js"></script>

    <script type="text/javascript">
        var viz, sheet;

        function initViz() {
            var containerDiv = document.getElementById("vizContainer"),
                url = "http://public.tableau.com/views/RegionalSampleWorkbook/College",
                options = {
                    "Academic Year": "",
                    hideTabs: true,
                    onFirstInteractive: function () {
                        sheet = viz.getWorkbook().getActiveSheet();
                    }
                };

            viz = new tableau.Viz(containerDiv, url, options);
        }

        function selectCollege(college_name) {
            sheet.selectMarksAsync("College", college_name, tableau.SelectionUpdateType.REPLACE);
        }

     </script>
</head>

<body onload="initViz();">
    <div id="vizContainer"></div>
    <br />    
    <button onclick="selectCollege('Engineering');">Select a value</button>

</body>

</html>

最佳答案

selectCollege() 中,您试图在 tableau.Viz 的回调函数中定义它之前访问 sheet options 对象,即 onFirstInteractive()。为了解决这个问题,您可以在该函数中定义sheet 之后调用该函数:

options = {
  ...
  onFirstInteractive: function () {
    sheet = viz.getWorkbook().getActiveSheet();
    selectCollege('Engineering');
  }
};

并根据this forum , onFirstInteractive() 将在您的 tableau.Viz 实例首次呈现时调用一次。

关于javascript - 如何执行一个js函数onload?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45788127/

相关文章:

javascript - 如何在单个页面中启用多个 reCAPTCHA

JavaScript 无法在应用程序上运行

c++ - 部分初始化其他模块中定义的变量

c - 在 C 中初始化 char **string 以在soap结构函数参数中使用

date - 设置 Tableau 日期显示显示 12 个月前的上个月

javascript - Angular 页面挂起可能是由于内存使用率过高

javascript - 检查 Firefox OS 版本

c - 在 C 中声明和初始化数组

postgresql - 无法使用 Tableau online 进行在线同步 - Tableau 数据引擎错误 : 10000: Path does not exist

java - 线程 "main"java.lang.UnsatisfiedLinkError : Unable to load library 'TableauExtract' : The specified module could not be found 中出现异常