JavaScript And DHTML Cookbook [Electronic resources] نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

JavaScript And DHTML Cookbook [Electronic resources] - نسخه متنی

Danny Goodman

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
لیست موضوعات
توضیحات
افزودن یادداشت جدید










7.3 Changing the Content of Multiple Frames at Once


NN 2, IE 3


7.3.1 Problem


You want a single
button or hyperlink to change the content of two or more frames of
the frameset.


7.3.2 Solution


Scripting is required for two frame changes at once. It is best to
define a generalized function that performs the navigation, and
invoke that function from an onclick event handler
of a button or hyperlink. A function format that works for both
interface elements is like the following:

function loadFrames(url1, url2) {
parent.otherFrameName.location.href = location.href = return false;
}

The hyperlink tag that invokes this function looks as follows:

<a href=" target="content" onclick="return 
loadFrames(, 'navbar12l')">...</a>

A default navigation path for the link is provided for those with
scripting disabled.


7.3.3 Discussion


There are numerous variations on the solution script. Your choice
depends on your design and the audience for the pages.
Let's examine some other scenarios and alternate
approaches.

As indicated in Recipe 5.10, your site design can allow for
nonscripted access to be controlled strictly by the standard
hyperlink href and target
attributes, but a script-enhanced presentation takes advantage of the
onclick event handler of the link to supplement
or replace the default hyperlink action. You can even go so far as to
have the default action navigate to one part of your web site, while
the scripted action goes down an entirely different path suited to
scriptable browsers.

The example shown in the Solution is tailored to a link that changes
documents in both the current frame and one other. You
aren't limited to this combination. If
you'd rather keep the current frame intact (perhaps
it is a static navigation bar), but multiple other frames are to be
updated with each navigation bar click, change the references in the
loadFrames( ) function to point to the desired
frames in the order the URLs arrive from the event handler calls.
When using hyperlinks as the user interface element, however, be sure
to use the technique shown in the example so that the
onclick event handler ultimately evaluates to
return false to prevent the
default link action from operating.

If access by nonscriptable browsers is a significant issue for your
design, and you have a complex frameset consisting of several frames,
you can still offer the equivalent of changing multiple frames, but
do it for scriptable browsers more quickly. For nonscriptable browser
users, you have to define a different framesetting document for each
combination of frame content you offer from your navigation menu.
Assign the framesetting document to the href
attribute of a link, with the target pointing to the special
_top window. Continue to use the
loadFrames( ) function for the
onclick event handler of the link:

<a href=" target="_top" onclick="return 
loadFrames(, 'navbar12l')">...</a>

The advantage for the scriptable browser user is that the frames that
don't have to change stay right where they are, and
the browser doesn't have to compare the cache for
those frames against the server's document. Thus,
navigation is faster for scriptable browsers, but just as complete
for nonscriptable browsers. This is the ideal value-added proposition
that DHTML brings to a web page.


7.3.4 See Also


Recipe 7.2 for changing the content of one sibling frame.


/ 249