首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QuickBase:每次在表中搜索时加载javascript文件

QuickBase:每次在表中搜索时加载javascript文件
EN

Stack Overflow用户
提问于 2016-03-25 22:42:10
回答 1查看 250关注 0票数 0

好的,我有一个javascript文件,启动它注入另一个javascript文件,它创建每行复选框。js加载程序文件如下所示:

代码语言:javascript
复制
//Run these scripts on all table pages
if (gReqTemplName == "searchresults") {
    console.log(kRecordNamePlural, gReqQID);
    if ((kRecordNamePlural == "Time Cards" && gReqQID == 37) || (kRecordNamePlural == "Milestone Payments" && gReqQID == 11) || (kRecordNamePlural == "Expenses" && gReqQID == 11)) {
        $.getScript('/js/QuickBaseClient.js', function (data) {
            $.getScript(gReqAppDBID + '?a=dbpage&pagename=approve.js');
        });
    };
}

这个特定的pageID 37表具有搜索功能。问题是,当我进行搜索时,注入的javascript不再工作了。也就是说,每行的复选框在结果中不再显示。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-20 22:56:14

每当使用搜索框时,都会删除和重写报表的内容。由于页面没有重新加载,所以approve.js在加载时所做的任何更改都不会应用于新创建的元素。您可以使用此技术here使您的代码在该报表更新后运行。要缓存的方法是QB.Faceting.Instance.tableHomePageView.reportView.updateReport,如下所示:

代码语言:javascript
复制
QB.Faceting.Instance.tableHomePageView.reportView.updateReport = (function(){
    var cachedFunction = QB.Faceting.Instance.tableHomePageView.reportView.updateReport;
    return function(){
        var result = cachedFunction.apply(this, arguments);
        // Your code that inserts checkboxes
    };
})();

注意:如果Quickbase更改其方法名称或搜索框的工作方式,它将停止工作。如果这是一个关键的业务函数,您可能希望编写一个自定义页面,该页面处理自己的布局,并通过API调用对记录进行更改。这样,您就可以不受UI更新的影响。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36229215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档