我正在使用许多人都可以编辑的谷歌文档表。我需要能够告诉何时改变工作表,即添加或删除行或列。发生此情况时,我能够获得onChange事件,但似乎找不到更改了哪个工作表。该事件包含对SpreadSheet对象的引用,但是getActiveSheet
总是返回第一个工作表,而不管哪个工作表处于活动状态。
我创建了一个包含3张工作表的新电子表格,添加了以下脚本并对其进行了授权。
function onOpen() {
ScriptApp.newTrigger("onChange")
.forSpreadsheet(SpreadsheetApp.getActiveSpreadsheet())
.onChange()
.create();
}
function onChange(e) {
Logger.log(e)
Logger.log("Name: " + e.source.getName())
Logger.log("Active Sheet: " + e.source.getActiveSheet().getName())
Logger.log("All Sheets: " + e.source.getSheets().map(function(s){return s.getName()}))
}
我去了第2页,删除了一栏。日志显示:
[14-07-17 19:13:32:774 EDT] {changeType=REMOVE_COLUMN, source=Spreadsheet, authMode=FULL}
[14-07-17 19:13:32:861 EDT] Name: Untitled spreadsheet
[14-07-17 19:13:32:944 EDT] Active Sheet: Sheet1
[14-07-17 19:13:32:946 EDT] All Sheets: Sheet1,Sheet2,Sheet3
因此,事件虽然我的工作表2处于活动状态,操作只影响工作表2,但传递给onChange处理程序的事件似乎表明工作表1当时处于活动状态。
我怎样才能知道哪张纸真的变了?
看起来更改事件不应该返回“source”,即使它在日志中返回了。
我的行为和你一样。我能够得到的工作表名称与'在编辑',但这并不适合你想做什么。
我还尝试使用onedit和onchange触发器的组合,但它们不会同时触发,只能触发其中一个。
这是值得提交的问题跟踪
我试图构建一个GUI,它有许多按钮(JButton)/下拉项(JMenuItem),当按下每个包含字母的按钮时,相关的字母将添加到标签中。 我无法识别按下了哪个按钮。你能给我一个关于如何做到这一点的提示吗?
我正在使用chart.js绘制多个折线图。当用户点击其中一个图表时,我需要知道是哪个图表。为了捕捉用户的单击,我在图表的中添加了以及一个以在用户单击图表时调用函数。现在我有了这个: null null 每次单击图表时,它都会给出一个(包含每个图表的信息),还会给出一个包含click事件信息的对象。但我似乎找不到信息来断定哪个图表被点击了。我怎么能这么做?
我知道,在Java中的事件驱动程序中,可以找出是什么对象导致了事件(例如,选择了,因此会发生特定的操作)。我的问题是,如果在一个按钮组中有两个,两个按钮都添加了动作侦听器,并且您一直在从一个按钮到另一个按钮中进行选择,那么是否有可能找到以前选择的?换句话说,如果我选择了另一个,在选择当前之前,是否可以编写代码来确定之前选择了哪个? 编辑:我会更具体。我正在创建一个“虚构”的餐厅程序。在其中,我列出
我不明白为什么,如果微调器调用ChangeListener两次。我怎样才能做到只打一次电话? 控制器。JAVA 主要的JAVA 输出:
问题内容: 我有一个带有两个提交按钮和一些代码的表单: HTML: JavaScript: 当然,这两个提交按钮完成不同的事情。有没有一种方法可以找出按下了哪个按钮,所以以后我可以这样做吗? 理想情况下,我不想修改按钮的代码,而只是具有这种行为的纯JavaScript插件。 我知道Firefox具有,但是我找不到其他浏览器的任何内容。 问题答案: 不在提交事件处理程序中,不。 但是您 可以 做的是
我想要一种方法,只更改字段,用户已更改,如果他选择了多行。