修改表单中特定字段的最佳方法是什么

What is the best way to modify a specific field in a form?

本文关键字:最佳 方法 是什么 字段 表单 修改      更新时间:2023-09-26

具体来说,我想做的是根据我自己的目的"更改"Google Calendar字段条目中的一个字段。也就是说,位置几乎总是四个位置中的一个,但谷歌日历的设置方式它不跟踪频繁输入的信息,并且每次都写下完整的地址(或者保存一个包含4个地址到C&P的笔记文件)有点烦人。

理想的我想将是一个"扩展"或脚本,将自动检测到我正在填写谷歌日历事件条目,并将位置字段更改为我经常使用的四个地址以及"其他"选项。

另一种可能是某种bookmarklet(或一组4个),它填充.

中的位置字段。

我真的不知道从哪里开始,或者哪个方法会更好(见鬼,很可能有第三种选择更好)。

PS:如果这在Firefox或其他浏览器中比Chrome更容易/更有效,那也很好。

我会选择bookmarklet。下面是一个潜在的URL,用于设置当前Google Calendar页面的地址("Where"的id输入是":1u"):

javascript:document.getElementById(':1u').value='123 Some st.'; void(0);

我会用类似于上面的url为你的4个地址写书签,然后把它们放在一个容易访问的文件夹中,每次你想填充那个地址时都使用它们。

更新:

由于ID更改,您可以通过类名获得它。但是,如果在Where字段更改之前类更改或输入数量更改,则必须更新链接:

javascript:document.getElementsByClassName('textinput')[1].value='123 Some st.'; void(0);
更新2:

显然Google在保存日历项时不考虑文本框的当前值。我通过在文本框的值更新后手动触发'change'事件来修复这个问题。以下内容目前可以在Firefox中使用:

javascript:var a=document.getElementsByClassName('textinput')[1];a.value='123 Some st.';var e=document.createEvent("HTMLEvents");e.initEvent('change',true,true);a.dispatchEvent(e);void(0);