getWidth [1.6.0]
document.viewport.getWidth() -> Number
返回当前窗口可视部分的宽度。
相当于调用 document.viewport.getDimensions().width。
到此,Prototype实战教程全部放送完毕,下面,我们将提供JQuery实战教程。
getScrollOffsets [1.6.0]
document.viewport.getScrollOffsets() -> [Number, Number] 或 { top: Number, left: Number }
返回当前窗口可视部分的水平和垂直滚动偏移值。
样例
document.viewport.getScrollOffsets();
//-> { left: 0, top: 0 }
window.scrollTo(0, 120);
document.viewport.getScrollOffsets();
//-> { left: 0, top: 120 }
...
getHeight [1.6.0]
document.viewport.getHeight() -> Number
返回当前窗口可视部分的高度。
相当于调用 document.viewport.getDimensions().height。
getDimensions [1.6.0]
document.viewport.getDimensions() -> { width: Number, height: Number }
返回当前窗口可视部分的尺寸。
viewport 是一个页面所占据的浏览器窗口的一个子集——在浏览器窗口中当前可见的部分。
样例
document.viewport.getDimensions();
//-> { width: 776, height: 580 }
getDimensions
getHeight
getScrollOffsets
getWidth
方法
getDimensions [1.6.0]
document.viewport.getDimensions() -> { width: Number, height: Number }
返回当前窗口可视部分的尺寸。
getHeight [1.6.0]
document.viewport.getHeight() -> Number
返回当前窗口可视部分的高度。
getScrollOffsets [1.6.0]
document.viewport.getScrollOffsets() -> [Number, Number] 或 { top: Number, left: Number }
返回当前窗口可视部分的水平和垂直滚动偏...
stopObserving [1.6.0]
document.stopObserving(eventName, handler[, useCapture = false]) -> document
为文档注销指定的事件处理程序。
document.stopObserving 是 Element#stopObserving 基于整个文档范围的版本。
observe [1.6.0]
observe(eventName, handler) -> document
侦听整个文档范围内的给定事件。也可以用于侦听 "dom:loaded" 事件。
document.observe 是 Element#observe 基于整个文档范围的版本。它与 Event.observe(document, eventName, handler) 是等价的。
"dom:loaded" 事件
Prototype 创建了一个确实非常有用的事件:你可能希望在文档的 DOM 树载入完成后,能够获取一个通知, 这就是所谓的 "dom:loaded" 事件。在支持 DOMContentLoaded 事件的浏览器上, Prototype 会在 DOMContentLoaded 事件上触发 "dom.loaded" 事件。对于不支...
fire [1.6.0]
fire(eventName[, memo]) -> Event
在 document 上触发一个自定义事件。
document.fire 是 Element#fire 基于整个文档范围的版本。
Form.Observer
new Form.Observer(element, frequency, callback)
一个定时观察器,当表单中任意一个控件的值发生变化时,将触发回调。
译注:注意,若要使用表单观察器,则表单中需要检测的控件必须添加
name 属性。
Form.Observer 使用 Form.serialize() 实现
getValue 方法。关于定时观察器的描述见
Abstract.TimedObserver。
样例
在下面的样例中,如果表单中任意控件的值发生变化,则改变表单的外观显示。当数据提交后(储存),
表单重置为初始时的外观。
Login Preferences
Current settings:
...
Form.Element.Observer
new Form.Element.Observer(element, frequency, callback)
一个针对指定表单控件的定时观察器。
Form.Element.Observer 使用 Form.Element.getValue() 实现 getValue() 方法。关于定时观察器的描述见 Abstract.TimedObserver。
TimedObserver 是一个抽象的观察器类,其具体类的实例用于对一些值进行定期检测, 若值发生变化,则触发一个回调。检测频率以秒为单位。
TimedObserver 对象使用 getValue() 实例方法对值进行检测。 在抽象类中并没有实现这个方法,你必须使用具体类如 Form.Observer 或 Form.Element.Observer 才能进行相应的检测。前者序列化一个表单,当结果发生变化时, 触发回调。而后者则是检测到指定的表单控件的值发生变化,就触发回调。
TimedObserver 的使用非常简单:实例化具体类并传递相应的参数,例如:
new Form.Element.Observer( 'myelement', 0.2, // 200 毫秒
function(el, value){
alert('The form control has c...
evaluate
evaluate(object) -> String
将模板应用于参数 object 指定的数据,使用 object 的属性值替换掉模板中相应的标记,返回替换后的字符串。
样例
var hrefTemplate = new Template('/dir/showAll?lang=#{language}&categ=#{category}&lv=#{levels}');
var selection = {category: 'books' , language: 'en-US'};
hrefTemplate.evaluate(selection);
// -> '/dir/showAll?lang=en-US&categ=books&lv='
hrefTemplate.evaluate({language: 'jp', levels: 3, created: '10/12/2005'});
// -> '/dir/showAll?lang=jp&categ=&lv=3'
hrefTemplate.evaluate({});
// -&g...
Template
evaluate
在开发中随时会遇到这样一种问题:有一组相似的对象,需要将这些对象统一采用一种格式输出。 可能你会使用一个循环,将对象的属性值与字符串字面值连接。这是一个典型的解决办法, 并没有什么错,只是比较麻烦,并且在看到相关的代码时不能够马上就明白输出的形式。 Template 类提供了一种清晰明了的办法来解决格式化输出的问题。
走近模板
Template 类使用一种基本的类似于 Ruby 的格式化语法。可以通过嵌入了形如 #{fieldName} 这种样式的替换标记的字符串创建一个模板,应用该模板时 (evaluate),#{fieldName} 将会被对象中相应属性的值替换。 一个简单的样例如下:
// 模板(格式化表达式)
v...
unfilterJSON [1..5.1]
unfilterJSON([filter = Prototype.JSONFilter]) -> String
移除 Ajax JSON 或 JavaScript 响应内容周围的安全注释界定符。这是供内部使用的一种安全机制。
样例
'/*-secure-n{"name": "Violet", "occupation": "character", "age": 25}n*/'.unfilterJSON()
// -> '{"name": "Violet", "occupation": "character", "age": 25}'
...
unescapeHTML
unescapeHTML() -> string
移除字符串中的标签,并将用实体表示的 HTML 特殊字符转换为它们的正常形式。
样例
'x > 10'.unescapeHTML()
// -> 'x > 10'
'<h1>Pride & Prejudice</h1>'.unescapeHTML()
// -> 'Pride & Prejudice'
underscore
underscore() -> string
将一个 Camel 形式的字符串转换为以下划线("_")分隔的一系列单词。
样例
'borderBottomWidth'.underscore();
// -> 'border_bottom_width'
注意
为将一个 DOM style 属性转换为它等价的 CSS 属性,请联合使用使用 String#dasherize 和 String#underscore 方法。
'borderBottomWidth'.underscore().dasherize();
// -> 'border-bottom-width'
...