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

时间:2011-07-06 15:53:02

标签: javascript forms google-chrome-extension google-calendar-api

具体而言,我想要做的是“更改”Google日历字段条目中的某个字段,以用于我自己的目的。即,该位置几乎总是四个位置之一,但谷歌日历的设置方式不会跟踪频繁输入的信息,每次都写入完整的地址(或者将4个地址保存到一个注释文件中) C& P)有点烦人。

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

另一种可能性是填充位置字段的某种书签(或4件套)。

我真的不知道从哪里开始或哪种方法会更好(地狱,可能还有第三种选择更好)。

PS:如果在Firefox或其他浏览器中更容易/更有效地完成此操作,而不是Chrome也可以。

1 个答案:

答案 0 :(得分:4)

我选择了bookmarklet。这是一个潜在的URL,用于设置当前Google日历页面的地址(“Where”输入的ID为“:1u”):

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

我会为您的4个地址编写带有类似上述内容的书签,然后将它们放入易于访问的文件夹中,并在每次要填充该地址时使用它们。

<强>更新

由于ID更改,您可以通过类名获取它。但是,如果班级更改或Where字段更改前的输入数量,您将不得不更新您的链接:

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

更新2:

显然,Google会在保存日历项目时不考虑文本框的当前值。我通过在更新文本框的值后手动触发“更改”事件来修复此问题。以下目前适用于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);