Memento包含用户使用JavaScript完成超出常规Memento用户界面功能的复杂任务的功能。示例包括JavaScript字段,触发器,操作和数据源。 Memento JavaScript库可用于访问Memento设施。
为了使JavaScript字段对用户来说既简单又安全,它们可以只使用库的一部分,简化了它的使用性质。将识别与JavaScript字段相关的任何限制或差异。
[TOC]
## 库和条目[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=1 "编辑小节:库和条目")]
### '库'全局函数[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=2 "编辑小节:'库'全局函数")]
#### entry()[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=3 "编辑小节:entry()")]
获取事件的Entry对象。例如,如果脚本由Update Entry事件触发,则此函数将返回正在更新的条目。
这个Entry对象是实际Entry对象的克隆。如果条目已保存,则此对象将成为实际的对象,但如果调用cancel(),则会删除此条目克隆以及脚本可能执行的任何更改。
此功能可用于所有事件和阶段,但**创建条目**>除外。 **打开一个条目编辑卡**;对于这个动作,使用函数*entryDefault()*。
结果
[***Entry***object](http://www.jsaaa.cc/app/mementodatabase/index.php/%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93#Object_Entry)—当前条目
使用
~~~
var e = entry(); //当前条目对象
//条目对象指定字段的值
var str = entry().field("Number");
e.field("苹果"); //代表当前条目指定字段"苹果"内容
~~~
#### entryDefault()[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=4 "编辑小节:entryDefault()")]
获取包含尚未创建的条目的默认字段值的Entry对象。此功能仅适用于活动**创建条目**和阶段**打开条目编辑卡**。
结果
[***DefaultEntry***object](http://www.jsaaa.cc/app/mementodatabase/index.php/%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93#Object_DefaultEntry)
使用
~~~
var e = entryDefault();//尚未创建的默认值的条目对象
entryDefault().set("StartMileage","cc");
~~~
#### exit()[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=5 "编辑小节:exit()")]
停止脚本执行
使用
~~~
exit();
~~~
#### lib()[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=6 "编辑小节:lib()")]
获取触发事件的库
结果
[***Library***object](http://www.jsaaa.cc/app/mementodatabase/index.php/%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93#Object_Library)—目前的图书馆
使用
~~~
var lib = lib(); //当前库对象
~~~
#### libByName(name)[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=7 "编辑小节:libByName(name)")]
按名称查找图书馆。根据安全设置,需要使用库的许可。
参数
要找到的库的名称
结果
[***Library***object](http://www.jsaaa.cc/app/mementodatabase/index.php/%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93#Object_Library)—如果找到,则由参数*name*标识库。否则为'null*。*
使用
~~~
var lib = libByName("b"); //指定库,对象
~~~
### 对象*库*[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=8 "编辑小节:对象库")]
该对象提供对库条目的访问。您可以使用当前库— *lib()*—或数据库中的任何其他库— *libByName() *。该功能可以更新现有条目并创建新条目。
#### *Library*方法[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=9 "编辑小节:Library方法")]
##### create(values)[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=10 "编辑小节:create(values)")]
在库中创建一个新条目
**争论**
值
[***Object***](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)包含字段值
结果
[***Entry***object](http://www.jsaaa.cc/app/mementodatabase/index.php/%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93#object_entry)—图书馆中的新条目
使用
~~~
//假设要操作的库是"Members"
var members = libByName("Members"); //需要库的操作权限
//创建一个新条目
var newMember = new Object();
//从应用程序数据设置成员字段并添加新的成员条目
newMember ["Name"] = e.field("Name");
newMember ["Type"] = e.field("Type");
members.create(newMember);
~~~
##### entries()[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=11 "编辑小节:entries()")]
获取库的所有条目
结果
数组对象包含条目,按其创建时间从最新到最旧排序
使用
注意:以下代码,都是散开详解的,要学会灵活使用!
~~~
var entries = lib().entries(); //获取当前库及其条目的数组
var num = entries.length //数组的条目数
var str = entries[0].field("Mileage");//第几个条目的指定字段内容
/*
*循环条目数组
*/
var entries = lib().entries(); //包含所有条目的数组
var unique = true; //最初假设
for (var ent = 0; ent < entries.length; ent++) { //遍历所有条目
if (entries[ent].field("myField") === myField) //如果有匹配,
unique = false;
}
/*
*讲解
*/
var entries = lib().entries();
~~~
这个 entries 输出是什么,它是条目数组对象
输出
~~~
[com.luckydroid.droidbase.triggers.objects.JSEntry@995f049, com.luckydroid.droidbase.triggers.objects.JSEntry@2583bd4e, com.luckydroid.droidbase.triggers.objects.JSEntry@15198e6f, com.luckydroid.droidbase.triggers.objects.JSEntry@1e21a77c, com.luckydroid.droidbase.triggers.objects.JSEntry@1b444805]
~~~
##### find(query)[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=12 "编辑小节:find(query)")]
在匹配给定查询的库中的条目中搜索字段值。此搜索与通过Memento的用户界面搜索类似。
**争论**
查询
搜索字符串
结果
包含匹配条目的数组对象。条目按其创建时间排序,从最新到最旧。
##### findById(id)[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=13 "编辑小节:findById(id)")]
按条目ID搜索所有条目。
**争论**
id
唯一标识条目的ID字符串。
结果
[***Entry***object](http://www.jsaaa.cc/app/mementodatabase/index.php/%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93#Object_Entry),如果找到。否则,'null*。*
##### findByKey(name)[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=14 "编辑小节:findByKey(name)")]
按条目名称搜索所有条目。该库必须设置为唯一的条目名称。
**争论**
名称
条目名称字段值
结果
[***Entry***object](http://www.jsaaa.cc/app/mementodatabase/index.php/%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93#Object_Entry),如果找到。否则,'null*。*
##### linksTo(entry)[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=15 "编辑小节:linksTo(entry)")]
获取库中包含指向条目的链接的条目。
**参数**
条目
用于搜索指向它的链接的条目。
结果
包含条目的数组对象。
##### show()[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=16 "编辑小节:show()")]
显示库
#### *Library*属性[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=17 "编辑小节:Library属性")]
title
图书馆的名称
### 条目对象[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=18 "编辑小节:条目对象")]
该对象包含当前库的条目,允许设置字段值
#### 条目方法[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=19 "编辑小节:条目方法")]
##### field(name)[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=20 "编辑小节:field(name)")]
获取指定字段的值
**争论**
名称
字段的名称
结果
字段的值。结果的类型取决于字段的类型。
使用
~~~
field("水果"); //“水果”字段的值
~~~
字段类型返回值
| 字段类型 | JavaScript对象 | 例子 |
| 文本,超链接,密码,电话,电子邮件,计算(字符串结果),单选按钮,单选列表 | [**字符串**](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) | “ABC” |
| 整数,实数,评级,货币,计算(数字结果) | [**号码**](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number) | 42,42.1 |
| 日期,日期时间,时间 | [**日期**](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Date) |
| 复选框(布尔) | [**布尔'**](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean) | 真假 |
| 复选框,多选列表 | [[1]](https://developer.mozilla.org/docs/Web/JavaScript/Reference/)的[**数组**](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array) 全局对象/字符串**字符串**] | [“衬衫”,“裤子”,“袜子”] |
| 图片 | [[2]](https://developer.mozilla.org/docs/Web/JavaScript/Reference/)的[**数组**](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array) 全局对象/字符串**字符串**] | [“file:///storage/emulated/0/DCIM/image01.png”,“file:///storage/emulated/0/DCIM/image02.png”] |
| 链接到条目 | [**条目**](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E8%A7%A6%E5%8F%91%E5%99%A8%EF%BC%83%E6%9D%A1%E7%9B%AE%E5%AF%B9%E8%B1%A1&action=edit&redlink=1 "触发器#条目对象(页面不存在)")的[**数组**](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)] >每个数组元素都有一个方法“field()”,用于访问链接库条目的字段值。例如:
字段( “localField”)[I]的字段( “remoteField”) | [e1,e2,e3] |
##### link(name, entry)[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=21 "编辑小节:link(name, entry)")]
添加链接—到当前库中的链接到条目字段—到相关图书馆的入口。
**参数**
name
要添加链接的链接到条目的名称字段
entry
输入到要链接的字段相关库中
##### recalc()[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=22 "编辑小节:recalc()")]
重新计算输入字段的值。
##### set(name, value)[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=23 "编辑小节:set(name, value)")]
设置命名字段的值。调用此方法会立即将该值写入库。
**注意:**如果要设置的字段是链接到条目字段,则第二个参数应该是要链接到的条目的条目名称。如果在该库中有多个字段设置为条目名称,则set()方法的条目名称是通过用逗号(,)分隔这些字段的值来形成的 - —不是逗号和空格,而只是逗号。
**参数**
name
字段的名称
value
字段的值
* 对于多选列表和复选框字段,字符串数组提供值。
* 对于链接到条目字段,一串字符串—其中每一个都可能是逗号分隔的字段名称列表—提供要链接的条目的条目名称。
* 对于链接到文件字段,路径名称数组标识要链接的文件。
使用
~~~
var e = entry();
e.set("水果","苹果"); //设置苹果字段的值为苹果,该操作会立即写入库。
~~~
##### show()[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=24 "编辑小节:show()")]
显示条目
##### unlink(name, entry)[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=25 "编辑小节:unlink(name, entry)")]
删除链接—从当前库中的链接到输入字段—到相关图书馆的入口。
**参数**
name
从中删除链接的链接到条目的链接名称
entry
在字段的相关库中输入标识要删除的链接
#### 条目属性[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=26 "编辑小节:条目属性")]
author
创建条目的用户的ID
creationTime
创建条目的日期和时间
deleted
真,如果条目被删除(它在回收站中)
description
条目描述
favorites
如果条目位于收藏夹中,则为true
id
条目标识符
lastModifiedTime
条目上次修改的日期和时间
name
条目名称
title
条目名称
### *DefaultEntry*对象[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=27 "编辑小节:DefaultEntry对象")]
具有新条目的默认值的模板。此功能仅适用于活动**创建条目**和阶段**打开条目编辑卡**。
#### *DefaultEntry*方法[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=28 "编辑小节:DefaultEntry方法")]
##### 设置(名称,值)[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=29 "编辑小节:设置(名称,值)")]
设置字段的值
**参数**
名称
字段的名称
值
字段的值
### 库和条目对象的例子[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=30 "编辑小节:库和条目对象的例子")]
请参阅**[触发器示例#库示例](http://www.jsaaa.cc/app/mementodatabase/index.php/%E8%A7%A6%E5%8F%91%E5%99%A8%E7%A4%BA%E4%BE%8B#.E5.BA.93.E7.A4.BA.E4.BE.8B "触发器示例")**。
* * *
## 使用文件[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=31 "编辑小节:使用文件")]
通过脚本,您可以读取或写入设备内部存储器或SD卡上的文件。所有的文件操作都是通过一个名为*file()*的全局函数获得的'File'对象来执行的。
为了处理文件,库应该具有读/写文件访问权限。
### *文件*全局函数[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=32 "编辑小节:文件全局函数")]
#### file(name)[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=33 "编辑小节:file(name)")]
打开文件进行读取或写入操作。如果具有指定名称的文件尚不存在,它将被创建。
**争论**
名称
文件的名称和完整路径。例如,如果文件位于SD卡上,路径应该是/sdcard/example.txt。
结果
[***File***object](http://www.jsaaa.cc/app/mementodatabase/index.php/%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93#Object_File)
### 文件对象[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=34 "编辑小节:文件对象")]
该对象由全局函数"file()"返回并提供对所请求文件的访问。阅读或写作后,应使用方法*close()*关闭文件。
#### 文件方法[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=35 "编辑小节:文件方法")]
close()
关闭文件。随后可以重新打开。
getLineNumber()
获取当前行号
返回
文件中的行号或位置
readAll()
读取文件的所有行,然后关闭文件
返回
包含文件行的数组
readChar()
从文件流中读取下一个字符
返回
字符
readLine()
从文件流中读取下一行
返回
该行
readLines()
从文件流中读取剩余的行
返回
包含文件其余行的数组
write(text)
写入字符串。获取可变数量的参数,将每个参数转换为字符串,然后将该字符串写入文件流。
writeLine(text)
向文件流写入字符串和换行符
#### *文件*属性[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=36 "编辑小节:文件属性")]
exists
true—当且仅当文件存在;否则为假
length
文件的长度(以字节为单位),如果文件不存在,则为0L。
### 文件示例[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=37 "编辑小节:文件示例")]
参见**[Trigger Examples#Files Examples](http://www.jsaaa.cc/app/mementodatabase/index.php/Trigger_Examples#Files_Examples "Trigger Examples")**。
* * *
## 处理HTTP请求[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=38 "编辑小节:处理HTTP请求")]
脚本可以通过其API发送HTTP请求到Web服务。 对HTTP请求的处理允许Memento和系统之间的集成。所有文件操作都使用Http对象,它通过全局函数*http()*工作。
HTTP请求必须满足两个要求:
1. 脚本执行必须是**异步**,所以HTTP请求会进入事件的最后阶段。
2. 图书馆应该拥有**Network**权限。
### *Http*对象[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=39 "编辑小节:Http对象")]
处理HTTP请求的接口
#### *Http*方法[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=40 "编辑小节:Http方法")]
##### get(url)[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=41 "编辑小节:get(url)")]
执行HTTP获取请求
**争论**
网址
HTTP地址,以http或https开头
**结果**
HttpResult
包含HTTP请求执行结果的对象
### *HttpResult*对象[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=42 "编辑小节:HttpResult对象")]
执行HTTP请求的结果
#### *HttpResult*属性[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=43 "编辑小节:HttpResult属性")]
body
文本形式的回应
代码
响应的HTTP代码,如果请求成功(通常为200)。
### Http例子[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=44 "编辑小节:Http例子")]
参见**[Trigger Examples#Http Examples](http://www.jsaaa.cc/app/mementodatabase/index.php/Trigger_Examples#Http_Examples "Trigger Examples")**。
* * *
## 与系统的交互[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=45 "编辑小节:与系统的交互")]
### *系统*全局函数[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=46 "编辑小节:系统全局函数")]
#### cancel()[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=47 "编辑小节:cancel()")]
停止导致事件的系统操作。许多触发器可能是输入操作(创建,更新,删除等)的结果。 *cancel()*函数可以在系统操作之前的阶段使用。例如,可以在保存条目之前在数据验证期间使用此功能。
用法
//使用这个函数,将直接停止系统操作,比如新建条目前,启用这个函数,条目则不会被新建,界面将停留在当前条目的输入状态
cancel();
#### guid()[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=48 "编辑小节:guid()")]
生成随机文本标识符
结果
随机字符串标识符
#### intent(action)[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=49 "编辑小节:intent(action)")]
创建一个信息交换对象—意图。该功能可以将操作请求发送给其他应用程序。
此功能仅适用于Android。
**争论**
行动
界定标准行动的行(例如,查看,挑选)
结果
[''******object******](http://www.jsaaa.cc/app/mementodatabase/index.php/%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93#Object_Intent)***—信息交换对象***
收到对象后,数据将被添加到它,然后通过"send()"发送。
Android有许多内置操作。这些操作的列表可以在[**here**](https://developer.android.com/reference/android/content/Intent.html)找到。
#### log(text)[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=50 "编辑小节:log(text)")]
将一行写入日志文件
**争论**
文本
要写入日志的文本
#### message(text)[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=51 "编辑小节:message(text)")]
向用户显示一个简短的通知
**争论**
文本
通知的文本
用法
~~~
//弹出一个提示内容
message("您好!");
~~~
#### system()[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=52 "编辑小节:system()")]
获取有关系统的信息
结果
[***System***object](http://www.jsaaa.cc/app/mementodatabase/index.php/%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93#Object_System)
### 对象*系统*[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=53 "编辑小节:对象系统")]
该对象包含有关系统的信息。
#### *系统*全局函数[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=54 "编辑小节:系统全局函数")]
exit()
结束脚本执行
#### *系统*属性[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=55 "编辑小节:系统属性")]
os
执行脚本的操作系统的名称
### *意图*对象[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=56 "编辑小节:意图对象")]
信息交换对象。该对象是通过使用全局函数"intent()"创建的。
#### *意图*方法[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=57 "编辑小节:意图方法")]
##### data(uri)[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=58 "编辑小节:data(uri)")]
定义URI以引用数据
**争论**
uri
引用将应用该操作的数据的URI。它可以是联系人ID,文件路径,电话号码等。
##### extra(key, value)[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=59 "编辑小节:extra(key, value)")]
根据需要执行所需操作,将附加数据定义为键值对。与某些操作需要URI数据的方式类似,其他操作可能需要此格式的额外数据。
**参数**
键
附加数据项的键
值
附加数据项的值
##### extraLong(key,value)[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=60 "编辑小节:extraLong(key,value)")]
将其他数据定义为键值对,其中数据类型需要为Long
**参数**
键
附加数据项的键
值
附加数据项的值
##### mimeType(mime)[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=61 "编辑小节:mimeType(mime)")]
定义数据的MIME类型
**争论**
mime
将在其上执行操作的数据的MIME类型
##### send()[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=62 "编辑小节:send()")]
发送一个消息
### 系统示例[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=63 "编辑小节:系统示例")]
请参阅**[触发示例#系统示例](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E8%A7%A6%E5%8F%91%E7%A4%BA%E4%BE%8B&action=edit&redlink=1 "触发示例(页面不存在)")**。
* * *
## 某些Memento字段类型的内置对象[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=64 "编辑小节:某些Memento字段类型的内置对象")]
### *JSContact*对象[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=65 "编辑小节:JSContact对象")]
此对象包含存储在"联系人"字段中的信息,并提供用于访问和操作此信息的属性和方法。
当调用一个Entry对象的field()方法时,如果Memento字段类型为Contact,则返回一个JSContact对象。
如果联系人字段包含多个联系人,请使用*hasNext*和*next*来检索它们。
#### JSContact方法[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=66 "编辑小节:JSContact方法")]
call()
如果设备是电话,则拨打此联系人的主要电话号码
sendEmail(subject, message) 解释:sendEmail(主题,消息)
发送电子邮件到主题的电子邮件地址,主题为***主题***和邮件''''''***(文本字符串)***
sendSMS(message) 解释:sendSMS(消息文本内容)
如果设备是电话,则将提供的***消息***(文本字符串)作为SMS消息发送到此联系人的主要电话号码
show()
打开此联系人的联系人应用程序
## JSContact属性==[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=67 "编辑小节:JSContact属性==")]
email
此联系人的主要电子邮件地址
fullName
此联系人的全名
hasNext
如果存在下一个JSContact对象,则返回TRUE,否则返回FALSE
next
返回下一个JSContact对象,如果有的话。
phone
此联系人的主要电话号码
### *JSGeolocation*对象[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=68 "编辑小节:JSGeolocation对象")]
该对象包含存储在位置字段中的信息,并提供用于访问和操作此信息的属性和方法。
当调用一个条目对象的field()方法时,如果Memento字段类型是Location,则返回一个JSGeolocation对象。
如果位置字段包含多个位置,请使用*hasNext*和*next*来检索它们。
#### JSGeolocation属性[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=69 "编辑小节:JSGeolocation属性")]
address
该地点的地址
hasNext
如果存在下一个JSGeolocation对象,则返回TRUE,否则返回FALSE
lat
纬度,作为一个真实的
lng
经度,作为一个真实的
next
返回下一个JSGeolocation对象,如果有的话。
### 内置对象示例[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=70 "编辑小节:内置对象示例")]
请参阅**[触发器示例#内置对象示例](http://www.jsaaa.cc/app/mementodatabase/index.php/%E8%A7%A6%E5%8F%91%E5%99%A8%E7%A4%BA%E4%BE%8B#.E5.86.85.E7.BD.AE.E5.AF.B9.E8.B1.A1.E7.A4.BA.E4.BE.8B "触发器示例")**。
* * *
## 另请参阅[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=71 "编辑小节:另请参阅")]
[脚本操作](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E8%84%9A%E6%9C%AC%E6%93%8D%E4%BD%9C&action=edit&redlink=1 "脚本操作(页面不存在)")
纪念品操作
[Script Data Sources](http://www.jsaaa.cc/app/mementodatabase/index.php/Script_Data_Sources "Script Data Sources")
纪念品数据源
[触发](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E8%A7%A6%E5%8F%91&action=edit&redlink=1 "触发(页面不存在)")
纪念物触发器
[触发示例](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E8%A7%A6%E5%8F%91%E7%A4%BA%E4%BE%8B&action=edit&redlink=1 "触发示例(页面不存在)")
记忆触发器的示例
[提示:在Memento中使用JavaScript](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E6%8F%90%E7%A4%BA:%E5%9C%A8Memento%E4%B8%AD%E4%BD%BF%E7%94%A8JavaScript&action=edit&redlink=1 "提示:在Memento中使用JavaScript(页面不存在)")
在Memento中使用JavaScript的提示
### JavaScript链接[[编辑](http://www.jsaaa.cc/app/mementodatabase/index.php?title=%E7%BA%AA%E5%BF%B5%E5%93%81JavaScript%E5%BA%93&action=edit§ion=72 "编辑小节:JavaScript链接")]
| **W3Schools** |
| [**JavaScript教程**](http://www.w3schools.com/js/) | 一个令人愉快的,相当完整的,有用的JavaScript教程
最好在风景中的计算机或平板电脑上。在纵向手机或平板电脑上,滚动至底部进行导航。 |
| **Mozilla开发者网络** |
| [**JavaScript指南**](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide) | 向您展示如何使用JavaScript,概述语言,并介绍其功能和特性 |
| [**JavaScript参考**](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference) | 整个JavaScript语言详细描述 |
| [**JavaScript简介**](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Introduction) | 介绍JavaScript并讨论其一些基本概念 |
| [**JavaScript教程**](https://developer.mozilla.org/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript) | 重新介绍。 JavaScript通常被认为是一种玩具,但在其简单性之下,强大的语言特性正在等待着。 |
| [**JavaScript 1.7**](https://developer.mozilla.org/en-US/docs/Web/JavaScript/New_in_JavaScript/1.7) | Memento目前基于的JavaScript版本 |
| [**关于JavaScript**](https://developer.mozilla.org/en-US/docs/Web/JavaScript) | 在学习JavaScript的过程中跳出一个关键点 |
- 前言简介
- 技巧经验
- 实现自动序列号
- 使用工具来转换成csv文件
- 如何制作和导出模板组合
- 实例资源
- js字段实例
- 根据身份证取出生日期、性别、年龄
- 自动标记状态,到期自动标记过期,可屏蔽过期以及聚合计算显示
- 根据出生日期计算年龄
- 人民币小写数字金额转大写
- 倒计时天数,实现倒计时纪念日等功能显示
- 取指定时间是周几的4种方法
- 自动填写年份、月份
- 只显示计算公式而不显示计算结果的办法
- 根据多个已选的员工人数,计算总工资
- 计算显示每年、每月的总工资实例
- 实现完全性的跨库计算自定义公式
- 触发器实例
- 新建或编辑条目后,更改条目内容
- 计算字段范例
- 计算星期几实例(3.8.5版本及以上)
- 计算星期几实例(3.8.5版本以下)
- 计算第几周
- 实现单条数据的百分比形式(并且控制小数点为2位)
- 自动填充实例
- js套用方法外壳,实现网站数据源自动录入内容
- js代码实例
- 动作实例
- 实例将网络数据写入库中
- js函数运用实例
- 创建一个新的条目记录
- 查询库内容
- 数据源实例
- Js套用方法外壳,实现网站数据源自动录入内容
- 其它实例
- 字符串值的控制
- 资料知识
- 表格与ME库关系
- ME库电子日历使用一帖通
- ME库CSV应用一帖通
- 新手入门
- 新手入门教程
- 常见问题集合
- 官方资料(中文版)
- 计算字段
- JavaScript字段
- 链接到条目字段
- 脚本
- 纪念品JavaScript库
- 动作
- 数据源
- 触发器
- 触发器示例
- 旧档
- 计算字段命令,FUNCTION功能
- JavaScript的字段
- javascript常用函数及功能
- 前言介绍
- 经验技巧
- 官方资料(英文版)
- Memento Database
- Glossary
- Memento Wiki
- Useful links
- Releases
- User Interface
- Tutorial:Simple To Do List
- Tutorial:Simple To Do List Enhancements
- Libraries & templates
- Library
- Library Template
- Library Edit screen
- Library Groups
- How:Add a Library
- Libraries List screen
- Fields, pages, & subheaders
- Overviews
- Field
- Field Edit card
- Field Role
- Field Type
- Page
- Specs
- Techniques, Tips, How
- Tips:Using JavaScript in Memento
- How:Field Dependencies
- 关于附件
- 交流互助
- 贡献人员