有的时候,在一个窗口的内容发生变化时,另外一个窗口的内容也应当变化。你可以使用 JavaScript 同时打开多个 HTML 文件。听起来不错,但是用户通常会被浏览器的 Back 和 Forward 按钮只改变一个 HTML 文件搞得很苦恼,因为这样使窗口完全地不同步。这个技巧可以解决那个问题。
同步窗口的函数位于一个大窗口(syncUp)的框架集文件(syncframe.html)中:
function kinShip(url) {
if (waah != null && waah.child.location.href != url) {
waah.child.location.replace(url);
}
}
函数kinship() 检验小窗口(waah)是否打开,以及它的框架 child 是否包含正确的同步文件。如果waah处于打开状态,但框架 chi...
每位认真的网络用户,都有碰到过图像映射(Image maps)——你知道,点击那些图形的不同点,能够链接到不同的 URL。JavaScript 可让你进一步扩展image maps。在我们的例子之中,当用户点击了某位特定的人才时,我们会给有关他们的更多信息。
首先,我们简单地设置一个函数,这个函数定义了image map 每边的说明述文字:
functionleftDescription() {
//the " " character displays a line break
document.orderForm.description.value =
"This is Lefty. She enjoys figuring the tip
on restaurant bills and sorting her 14 years'
worth of computer magazines by subject.";
}
functi...
新打开的子窗口内容并不一定要写在它自己的 HTML 文件里面,下面让我们看一个例子:
这个例子中的窗口内容,包括图片在内,都是在窗口被打开以后写入的。要实现这个效果看上去有无数种方法,下面是其中一种:
varwriteWin = null;
function writeLeft() { writeWin =
window.open('','aWin','top=0,left=0,width=250,height=350'); varePen =
'<html><head><title>sans .html file</title></head>'; ePen += '<body
text="#cccccc" bgcolor="#000000"><tt><p>once upon a time, a ghost
said:</p>'; ePen += '<p><center><img
...
由于JavaScript 是面向对象的,它将每种HTML 表单元素——也就是按钮、选择框、文本域、甚至是表单本身——都看作是包含自身数据的一个独立对象。有了JavaScript,你就能在用户的计算机上,检查任何HTML 对象的数据,并根据结果做出决定。例如,运用域级的有效性检查(field-level validation),你能确保用户是否在一字段键入数字。
为了执行域级的有效性检查,你需要定义一个包含有效性检查逻辑的JavaScript 函数,然后在用户落下某个特定的HTML 域没有填写时(按键盘离开或是光标移开),就触发该项函数。一般来讲,这意味着使用一个onChange(可以检测出用户何时改变域)或是onBlur(检测用户何时...
控制窗口内容滚动算是一个较少使用到的 JavaScript 窗口功能,不过这一点可能会随着可滚动图层内容的到来而有所改变。这个技巧将教你如何实现内容滚动功能。
这段代码很简单。让我们先看看向下滚动功能所使用的函数。
var y = 0;
var when = null;
varps = parent.scrollee;
functionscrollMe() {
if (document.all && y < ps.document.body.scrollHeight || y < ps.document.height) {
ps.scroll(0,y);
y = y + 4;
when = setTimeout('scrollMe()',1);
}
}
scrollMe() 函数首先检查浏览器是否支持document.all属性(只有 IE 浏览器才支持这个属性),然后检查变量 y 的值是否小于scrollHeight属性...
一旦你验证了用户已经输入有效的数据,那么就应该处理这些数据了。在JavaScript 中,处理表单数据相当容易。
我们将利用下面的函数来计算总认养额:
functioncalcTotal()
document.orderForm.totalPrice.value =
(document.orderForm.numberOrdered.value
* 15.99);
}
简单吧,不是吗?calcTotal() 函数简单地取出用户在numberOrdered域所提供的数字,然后将其乘以15.99。
计算出来的总额,接着会打印在“Total sponsorship fee”框中。
当然,这里是用来调用该函数的HTML:
Number of brains you'd like to sponsor
<INPUT TYPE="text" NAME="numberOrdered&q...
通常你会需要打开第二个窗口显示相关的链接或者其它信息给用户。使用这个技巧中的代码可以同时打开多个窗口。这会在 JavaScript 产生的窗口和打开这些窗口的父窗口之间建立一个父/子关系。
四个窗口打开,每个位于屏幕的一角。在关闭主浏览器窗口之前新弹出的窗口会首先被关闭。
要创建这个效果,我定义了四个窗口,每个都有它们自己的功能。然后,我创建了一个函数(winBig())调用四个定义相应窗口的函数:
function winBig() {
win1(150,150);
win2(175,175);
win3(200,200);
win4(225,225);
}
不能在一个函数调用之中定义多个窗口;这样不会运行。
多窗口 UI 能够让用户节省屏幕空间并从其它东西中区分导航和目标...
除了同时打开多个窗口之外,你还可以连续地打开多个窗口。假设你建立一个站点,该站点的启动 HTML 文件从主浏览器窗口打开两个子窗口。第一个子窗口可以用来显示主要信息,第二个窗口用于导航。这样用户就能够关闭主浏览器窗口,同时 Web 开发人员也能够控制所有的导航元素。
每个窗口是一个被打开的子窗口的父窗口(或者称 opener)。弹出窗口 1 从主窗口打开。弹出窗口 2 到弹出窗口 4 在前面的子窗口装载之前打开。例如下面的代码,从弹出窗口 1 HTML 文件打开弹出窗口 2:
<script language="javascript">
<!--
var no2 = null;
function cascade2() {
no2 = window.open('cascade2.html','cas2','d...
在框架集中,aware0.html 和 aware1.html 与左框架同步,并以白色背景显示。下面是代码:
function preMpt() {
if (self.name == 'contextee') {
document.bgColor = '#ffffff';
parent.preNup('aware1b.html');
}
else {
document.bgColor = '#d2b48c';
self.focus();
window.onblur = function() {
window.close();
}
}
}
…
<body … onLoad="preMpt()">
另一方面,如果两个 HTML 文件任何之一是在一个弹出窗口中打开的,那么它们把焦点定于自己身上并以白色背景显示。而且,当用户在屏幕的其它任何地方点击鼠标时,弹出窗口自动关闭。
为什么这样做?简言之,就是重用。假设你...
我是为了一个仍在开发中的电子商务网站(eMirage)编写这个程序的。与其强迫用户等待所有的产品图片下载完毕,我选择将图片显示在一个弹出窗口中。两个图片用同一个窗口显示,而且没有独立的 HTML 文件。下面是具体方法:
var faux = null;
varpic = new Image();
function copyCat(pic) {
faux = window.open('','newWin','dependent,resizable,top=20,left=20,width=273,height=230');
varfd = faux.document;
fd.open();
fd.write('<html><head><title>midnight @ the oasis</title></head>');
fd.write('<body bgcolor="black" onLoad="window.focus()">');
...
在这期专栏中,我将说明如何翻新选项卡式面板使其能够在不支持标准的4.0版本的老浏览器中工作,我还会稍微地改善面板的界面使其能够更具吸引力。
在翻新原来的选项卡式面板时,选项卡和面板在 Navigator 4.0中将会缺少边界,但是其它功能在 Netscape Navigator 或 Microsoft Internet Explorer 中都会一样。点击一个选项卡将显示与其关联的面板;点击后端的一个选项卡可以将引起选项卡的行移至前端。这就是我前面提到的一点小的界面改进;它使得所有行中的面板表现为同一种方式,而且使组件的行为更加一致。不幸的是,它就使得该组件不能再在 Opera 上运行,因为Opera 不支持 CSS clip属性。
另外一个显示上的改进是该组件不再是...
1.生成XML文件。
在ADO里,用Recordset.Save方法可以保存查询内容至指定XML文件,这样生成的文件里面有很多内容是关于数据表的属性的,即<s:Schema></s:Schema>节点内容。我们需要的是<rs:data></rs:data>节点的内容。结构大体如下:Data.xml
<xml ...>
<s:Schema>
...
</s:Schema>
<rs:data>
<z:row PositionID='1001' PositionName='fdsafsd' CompanyID='1' PMID='1001' />
<z:row PositionID='1002' PositionName='.NET Developer' CompanyID='2' PMID='1002' />
</rs:data>
这里的<z:row />即为一个数据...
尽管那需要用长串的、沉闷的不同分支代码来应付不同浏览器的日子已经过去,偶尔还是有必要做一些简单的区分和目标检测来确保某块代码能在用户的机器上正常运行。在这篇文章中,网页教学网介绍了7个在IE和Firefox中不同的JavaScript句法。
1. CSS "float" 值
访问一个给定CSS 值的最基本句法是:object.style.property,使用驼峰写法来替换有连接符的值,例如,访问某个ID为"header"的<div>的 background-color值,我们使用如下句法:
document.getElementById("header").style.backgroundColor= "#ccc";
但由于"float"这个词是一个JavaScript保留字,因此我...
JavaScript中的Function对象是函数,函数的用途分为3类:
作为普通逻辑代码容器;
作为对象方法;
作为构造函数。
1.作为普通逻辑代码容器
function multiply(x, y){
return x*y;
}
函数multiply封装了两位数的乘法运算公式:
var product = multiply(128,128); // product = 16384
创建函数实例的方式有3种。第一种是声明式,即像声明变量一样,将通过function(){}标识符创建的匿名函数直接赋值给变量,以该变量作为调用时的函数名称:
var multiply = function(x, y){
return x*y;
}
第二种是定义式,即以function关键字后跟函数名称及(){}来直接定义命名函数,前面第一个multiply函数就是通过定义式创建的。...
将以下代码copy成一个html文件运行即可看到效果,很不错的代码
以下是HTML代码:【运行代码】【复制代码】 <html>
<head>
<title>用javascript动态添加删除html元素-php自学网</title>
<script type="text/javascript"><!--
function $(nodeId) {
return document.getElementById(nodeId);
}
function $Name(tagName) {
return document.getElementsByTagName(tagName);
}
function replaceMsg() {
var newNode = document.createElement("P");//创建一个P标签
newNode.innerHTML = "<font color='red'>替换后的文字</f...
兼容IE6~8以及firefox
可以自定义:
// 提示窗口标题高度
// 提示窗口的边框颜色
// 提示窗口的标题颜色
// 提示窗口的标题背景色
// 提示内容的背景色
// 提示内容文字对齐方式
功能 可以弹出一个大DIV遮住页面(IE下 透明) 然后在屏幕中央显示显示一个小DIV
可用作功能提示 操作提示 以及公告等
提示内容可以使带HTML标记的文字,也可是一个页面链接
以下是Javascript代码:【复制代码】 <script type="text/javascript">
function MessageBox() {
this.titleheight = "21"; // 提示窗口标题高度
this.bordercolor = "#666699"; // 提示窗口的边框颜色
this....