---
name: "HTML::Prototype::Js"
section: "3pm"
platform: "linux"
package: "libhtml-prototype-perl"
version: "1.48-6"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/HTML::Prototype::Js"
---

# HTML::Prototype::Js(3pm)

prototype library, embedded in perl

## NAME

HTML::Prototype::Js - prototype library, embedded in perl

## SYNOPSIS

```
    our $prototype = do { package HTML::Prototype::Js; local $/; <DATA> };
```

## DESCRIPTION

This is the actual Prototype library embedded in a perl \_\_DATA\_\_ section, for easy inclusion in HTML::Prototype.

## NEW SYNTAX

The prototype library  provides some functions and classes which effectively change the basic syntax of the JavaScript you write.

- $(element)

  This function takes an element / element list and gets all string elements using document.getElementbyId. This is probably one of the most common functions when using javascript for web development, so it will save you a lot of typing.

- Class

  This uses fucntion references to allow namespace-like Class structures in javascript.

- Object.extend

  Simple inheritance for javacsript. Will set all properties of the child in the parent.

- Function.bind

  Allow function refs to be full object method references, through the use of extend and apply

- Try.these

  Simple try/catch for a list of functions, will return the return value of the first that doesn't throw an exception.

- Array.push

  implement push for arrays. returns number of elements in result.

- Function.apply

  Call a function on a given object, using eval.

## JS OBJECTS

The Prototype library provides a number of classes you can use to improve interaction with the end user.

- Ajax

  Provides one useful function, getTransport. This function will return a XMLHttpRequest object suitable for your browser.

- Ajax.Base

  An abstract base class for the Ajax objects described below. Sets some common options for Ajax objects;\
     **method:** http method, defaults to post.\
     **asynchronous:** process in the background, true/false, defaults to true.\
     **parameters:** extra parameters, defaults to blank.

- Ajax.Updater

  a subclass of Ajax.Base, this class uses Ajax.Request to populate a container in your web page. Takes container, url and Ajax.Base options as parameters.

- Ajax.Request

  This object represents a plain ajax request. It extends base to add a constructor, as well as some events to handle events. The constructor takes  an url, as well as the options described in Ajax.Base. Currently handles the following events:\
     'Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'

- Effect.Appear

  Takes an element, and makes that element appear through a fade.

- Effect.ContentZoom

  Takes an element, and zooms the content of that element.

- Effect.Fade

  Takes an element, and makes that element fade out and disappear.

- Effect.Highlight

  Takes an element, and does a highlight of that element.

- Effect.Puff

  Takes an element, and makes that element "blow up" and disappear. (As in disappear in a puff of smoke).

- Effect.Scale

  Takes an element, and a size, in percent, and scales that element to the given size. If it's a div, the initial size will have to be given in EM. No such restrictions for pictures.

- Effect.Squish

  Takes an element, and shrinks that element until it disappears.

- Element

  A collection of functions related to basic elements. takes one or more elements.\
     **toggle:** Toggles the element display style.\
     **hide:** Turns off the element's display style.\
     **show:** Turns on the element's display style.\
     **remove:** Delete this element from the DOM.\
     **getHeight:** Get the element height.

  Also provides a convenience object, Toggle, with one method display which aliases to toggle, so you can call it as\
     Toggle.display(element)

- Field

  Adds some useful functions to HTML Fields with several elements:\
     **clear:** remove all content.\
     **focus:** Give the element focus.\
     **present:** returns true if all arguments are filled in, false otherwise.\
     **select(element):** Select the given element in a form.\
     **activate(element):** give the selected element focus, and select it.

- Form

  Some useful utilies for HTML Forms. all of these take a form element as sole argument.\
     **serialize:** returns a URL serialized version of a given form.\
     **getElements:** returns all elements in the form.\
     **disable:** blurs and disables every element in the form.\
     **focusFirstElement:** Give first element in the form focus.\
     **reset:** reset all form elements.

- Form.Element

  Some useful objects for Form Field Elements. These take an element as the sole argument.\
     **serialize:** url encode the element for use in a URI string.\
     **getValue:** returns the value of the given element.

- Form.Element.Observer

  - Form.Element.Serializers

  Serializers for various element types. Takes the input element as argument.\
     **input:** determines the element type, and chooses the right serializer.\
     **inputSelector:** serialize checkbox/radio.

- Form.Element.Observer

  - Insertion

  This can be used in place of a innerHTML, to insert the content into the dom.

- Insertion.Before

  Puts content before a given dom node.

- Insertion.Top

  Puts content at the top of a given dom node.

- Insertion.Bottom

  Puts content at the bottom of a given dom node.

- Insertion.After

  Puts content after a given dom node.

- PeriodicalExecuter

  This object takes two parameters, a reference to a callback function, and a frequency in seconds. It will execute the callback every \<frequency\> second.

## SEE ALSO

HTML::Prototype, Catalyst::Plugin::Prototype \<http://prototype.conio.net/\>

## AUTHOR

Sebastian Riedel, `"sri@oook.de"` Marcus Ramberg, `"mramberg@cpan.org"`

Built around Prototype by Sam Stephenson. Much code is ported from Ruby on Rails javascript helpers.

## LICENSE

This library is free software. You can redistribute it and/or modify it under the same terms as perl itself.
