CSS
选择题
简答题
1
、
HTML
中定义表格的宽度的时候
80PX
与
80%
的区别是什么
Px
表示像素,
%
表示站整个也面宽度的百分比
2
、
简述
DIV
元素和
SPAN
元素的区别。
DIV
默认情况下是分行显示,
SPAN
在同行显示
3
、
CSS+DIV
开发
Web
页面的优势有哪些?
优点:
1
)
div+css
,这个网页设计模式中,
div
承担了网页的内容,
css
承担了网页的样式。这样就使网页的内容和样式的分离开来。有利于页面的维护升级。
2
)有助于提高搜索引擎亲和力(快速找到需要的数据,而不是像在
table
中一层层的查找)
3
)有助于页面的重构
(
换皮肤如
blog
,直接套用另外一套样式就可以实现,而不用改动网页脚本。
)
缺点:开发效率比较低
4
、
有关
CSS
浏览器兼容的一道面试题
请写出一段代码实现如下效果:在老的浏览器里面显示一段蓝色文字,新浏览器里面则显示成红色的,在
IE6
里面显示成绿的,
IE7
里面显示成黑色的
因为这个问题不是很严谨,只给出可能的答案:
#content p{color:blue}
html>body #content p {color:red}
* html #content p{color:green}
html>body #content p {*color:black;}
*
的涵意:由于不同的浏览器对
CSS
的支持及解析结果不一样,还由于
CSS
中的优先级的关系。我们就可以根据这个来针对不同的浏览器来写不同的
CSS
。这种方式称之为
CSS Hack
。
CSS Hack
大致有
3
种表现形式,
CSS
类内部
Hack
、选择器
Hack
以及
HTML
头部引用
(if IE)Hack
,
CSS Hack
主要针对类内部
Hack
:比如
IE6
能识别下划线
"_"
和星号
" * "
,
IE7
能识别星号
" * "
,但不能识别下划线
"_"
,而
firefox
两个都不能认识。
选择器
Hack
:比如
IE6
能识别
*html .class{}
,
IE7
能识别
*+html .class{}
或者
*:first-child+html .class{}
。
HTML
头部引用
(if IE)Hack
:针对所有
IE
:
<!--[if IE]><!--
您的代码
--><![endif]-->
,针对
IE6
及以下版本:
<!--[if lt IE 7]><!--
您的代码
--><![endif]-->
,这类
Hack
不仅对
CSS
生效,对写在判断语句里面的所有代码都会生效。
书写顺序一般是将识别能力强的浏览器的
CSS
写在前面,如:
比如要分辨
IE6
和
firefox
两种浏览器,可以这样写:
div{
background:green;/*forfirefox*/
*background:red;/*forIE6*/(bothIE6&&IE7)
}
在
IE6
中看到是红色的,在
firefox
中看到是绿色的。
在
firefox
中,由于不识别
*
号标识,于是将以星号开头的样式过滤掉,不予理睬,解析得到的结果是
:div{background:green},
于是理所当然这个
div
的背景是绿色的。
在
IE6
中,两个
background
样式都能识别出来,解析得到的结果是
:div{background:green;*background:red;}
,于是根据优先级别,处在后面的
red
的优先级高,所以
div
的背景颜色就是红色的。
CSS hack:
区分
IE6
,
IE7
,
firefox
区别
IE6
与
FF
:
background:orange;*background:blue;
区别
IE6
与
IE7
:
background:green!important;background:blue;
区别
IE7
与
FF
:
background:orange;*background:green;
区别
FF
,
IE7
,
IE6
:
background:orange;*background:green;_background:blue;
background:orange;*background:green!important;*background:blue;
注:
IE
都能识别
*;
标准浏览器
(
如
FF)
不能识别
*
;
IE6
能识别
*
;不能识别
!important;
IE7
能识别
*
,能识别
!important;
FF
不能识别
*
,但能识别
!important;
浏览器优先级别
:FF<IE7<IE6,CSS hack
书写顺序一般为
FF IE7 IE6
以
: " #demo {width:100px;} "
为例
;
#demo {width:100px;} /*
被
FIREFOX,IE6,IE7
执行
.*/
* html #demo {width:120px;} /*
会被
IE6
执行
,
之前的定义会被后来的覆盖
,
所以
#demo
的宽度在
IE6
就为
120px; */
*+html #demo {width:130px;} /*
会被
IE7
执行
*/
所以最后
,#demo
的宽度在三个浏览器的解释为
: FIREFOX:100px; ie6:120px; ie7:130px;
IE8
最新
css hack
:
"\9"
例
:"border:1px \9;".
这里的
"\9"
可以区别所有
IE
和
FireFox.
(只针对
IE9 Hack
)
"\0"
IE8
识别,
IE6
、
IE7
不能
.
"*"
IE6
、
IE7
可以识别
.IE8
、
FireFox
不能
.
"_"
IE6
可以识别
"_",IE7
、
IE8
、
FireFox
不能
.
5
、
Position
的值有哪几种?默认值又是什么?
-
position 的五种值都是什么? static, relative, absolute, fixed, inherit
-
position 的缺省值是什么? Static
6
、
超链接访问过后
hover
样式就不出现的问题
?
被点击访问过的超链接样式不在具有
hover
和
active
了
,
解决方法是改变
CSS
属性的排列顺序
: L-V-H-A
7
、
IE6
的双倍边距
BUG
例如
:
<style type=”text/css”> body {margin:0}
div { float:left; margin-left:10px; width:200px; height:200px; border:1px solid red } </style>
浮动后本来外边距
10px,
但
IE
解释为
20px,
解决办法是加上
display:inline
8
、
为什么
FF
下文本无法撑开容器的高度
?
标准浏览器中固定高度值的容器是不会象
IE6
里那样被撑开的
,
那我又想固定高度,又想能被撑开需要怎样设置呢?办法就是去掉
he ight
设置
min-height:200px;
这里为了照顾不认识
min-height
的
IE6
可以这样定义:
div { height:auto!important; height:200px; min-height:200px; }
9
、
为什么
web
标准中
IE
无法设置滚动条颜色了
?
原来样式设置:
<style type=”text/css”>
body { scrollbar-face-color:#f6f6f6; scrollbar-highlight-color:#fff; scrollbar-shadow-color:#eeeeee;scrollbar-3dlight-color:#eeeeee; scrollbar-arrow-color:#000;scrollbar-track-color:#fff; scrollbar-darkshadow-color:#fff; } </style>
解决办法是将
body
换成
html
10
、为什么无法定义
1px
左右高度的容器
?
IE6
下这个问题是因为默认的行高造成的,解决的方法也有很多,例如:
overflow:hidden | zoom:0.08 | line-height:1px
11
、怎么样才能让层显示在
FLASH
之上呢
?
解决的办法是给
FLASH
设置透明
:
<param name=”wmode” value=”transparent” />
12
、怎样使一个层垂直居中于浏览器中
?
<style type=”text/css”> <!– div {
position:absolute; top:50%; left:50%;
margin:-100px 0 0 -100px; width:200px; height:200px; border:1px solid red; } –> </style>
这里使用百分比绝对定位,与外补丁负值的方法,负值的大小为其自身宽度高度除以二
13
、
firefox
嵌套
div
标签的居中问题的解决方法
假定有如下情况:
<div id=
”
a
”
> <div id=
”
b
”
> </div> </div>
如果要实现
b
在
a
中居中放置,一般只需用
CSS
设置
a
的
text-align
属性为
center
。这样的方法在
IE
里看起来一切
正常;但是在
Firefox
中
b
却会是居左的。
解决办法就是设置
b
的横向
margin
为
auto
。例如设置
b
的
CSS
样式为:
margin: 0 auto;
。
14
、
FireFox
浏览器是否支持
VBScript
脚本?
不支持
15
、我们现在使用的
IE
的版本一般是多少,
IE
的英文全称是什么?
Internet Explorer 6.0 SP2/5.5/5.0/6.0 SP1/7.0 beta2/7.0 beta3
都算对。
16
、
CSS
规范中,每一条样式的结束符是
;
(分号)还是
:
(冒号)
?样式名与样式值之间的 分隔符是
:
(冒号)还是
=
(等号)
?
;
,
:
和
=
都可以
17
、
CSS
规范中,
.
(句点)后面跟一个名称代表什么含义?
#
(井号)后面跟一个名称代表
什么含义?如果要对一个元素设置
CSS
样式,应将
CSS
样式写在它的什么属性内?
后面跟个名称表示文档中所有
class
属性值包含这个名称的应用其后样式,
#
后面跟个名称表示文档中
ID
为此名称的元素应用其后样式。
18
、什么是
CSS
?它的能做些什么?
CSS
就是一种叫做样式表(
stylesheet
)的技术。也有的人称之为层叠样式表(
Cascading Stylesheet
)。在主页制作时采用
CSS
技术,可以有效地对页面的布局、字体、颜色、背景和其它效果实现更加精确的控制。
只要对相应的代码做一些简单的修改,就可以改变同一页面的不同部分,或者页数不同的网页的外观和格式。
它的作用可以达到:
(
1
)在几乎所有的浏览器上都可以使用。
(
2
)以前一些非得通过图片转换实现的功能,现在只要用
CSS
就可以轻松实现,从而更快地下载页面。
(
3
)使页面的字体变得更漂亮,更容易编排,使页面真正赏心悦目。
(
4
)你可以轻松地控制页面的布局
。
(
5
)你可以将许多网页的风格格式同时更新,不用再一页一页地更新了。你可以将站点上所有的网页风格都使用一个
CSS
文件进行控制,只要修改这个
CSS
文件中相应的行,那么整个站点的所有页面都会随之发生变动。
19
、
CSS
指的是什么
?
在网页制作中为什么要使用
CSS
技术
?
CSS(Cascading Style Sheets)
也叫层叠样式表,它是用来控制网页中一个或多个元素的外观。在网页制作中,使用样式表可以减少很多具有相同外观元素的重复设置工作,从而给网页的设计和维护带来了很大的方便
;
具体应用是:改变样式表中元素显示样式的定义,则在使用该样式表的所有网页中相应元素的显示样式都会自动发生改变。
编程题
JavaScript
选择题
20
、以下哪条语句会产生运行错误:(
A
)
A
、
var obj = ( ); B
、
var obj = [ ]; C
、
var obj = { }; D
、
var obj = / /;
21
、以下哪个单词不属于
javascript
保留字:(
B
)
A
、
with B
、
parent C
、
class D
、
void
22
、请选择结果为真的表达式:(
C
)
A
、
null instanceof Object B
、
null === undefined C
、
null == undefined D
、
NaN == NaN
23
、请选择对
javascript
理解有误的:
(ABCD)
A
、
JScript
是
javascript
的简称
B
、
javascript
是网景公司开发的一种
Java
脚本语言,其目的是为了简化
Java
的开发难
度
C
、
FireFox
和
IE
存在大量兼容性问题的主要原因在于他们对
javascript
的支持不同上
D
、
AJAX
技术一定要使用
javascript
技术
24
、
foo
对象有
att
属性,那么获取
att
属性的值,以下哪些做法是可以的:(
ACE
)
A
、
foo.att B
、
foo(
“
att
”
) C
、
foo[
“
att
”
] D
、
foo{
“
att
”
} E
、
foo[
“
a
”
+
”
t
”
+
”
t
”
]
25
、在不指定特殊属性的情况下,哪几种
HTML
标签可以手动输入文本:(
AB
)
A
、
<TEXTAREA></TEXTAREA> B
、
<INPUT type=
”
text
”
/> C
、
<INPUT type=
”
hidden
”
/> D
、
<DIV></DIV>
26
、以下哪些是
javascript
的全局函数:(
ABC
)
A
、
escape B
、
parseFloat C
、
eval D
、
setTimeout E
、
alert
27
、关于
IFrame
表述正确的有:
(ABCD)
A
、
通过
IFrame
,网页可以嵌入其他网页内容,并可以动态更改
B
、
在相同域名下,内嵌的
IFrame
可以获取外层网页的对象
C
、
在相同域名下,外层网页脚本可以获取
IFrame
网页内的对象
D
、
可以通过脚本调整
IFrame
的大小
28
、关于表格表述正确的有:(
ABCDE
)
A
、
表格中可以包含
TBODY
元素
B
、
表格中可以包含
CAPTION
元素
C
、
表格中可以包含多个
TBODY
元素
D
、
表格中可以包含
COLGROUP
元素
E
、
表格中可以包含
COL
元素
29
、关于
IE
的
window
对象表述正确的有:(
ACD
)
A
、
window.opener
属性本身就是指向
window
对象
B
、
window.reload()
方法可以用来刷新当前页面
C
、
window.location=
”
a.html
”和
window.location.href=
”
a.html
”的作用都是把当前页
面替换成
a.html
页面
D
、
定义了全局变量
g
;可以用
window.g
的方式来存取该变量
简答题
30
、如何让一个页面每
20
秒钟刷新一次而不用
Javascript?
可以使用
meta refresh
标签来进行刷新。
meta
标签是属于
HTML
文档的
<head>
部分。
例如:
<meta http-equiv=
”
refresh
”
content=
”
20
″
>
如下代码实现用
meta
标签将页面转发到一个新的页面:
<meta http-equiv=
”
refresh
”
content=
”
2;url=http://www.mianwww.com
”
>
31
、
HTML
的几种触发都是什么?
onblur
事件会在对象失去焦点时发生。
onchange
事件会在域的内容改变时发生。
onclick
事件会在对象被点击时发生。
onfocus
事件在对象获得焦点时发生。
onkeydown
事件会在用户按下一个键盘按键时发生。
onkeypress
事件会在键盘按键被按下并释放一个键时发生。
onkeyup
事件会在键盘按键被松开时发生。
onmousedown
事件会在鼠标按键被按下时发生。
onmousemove
事件会在鼠标指针移动时发生。
onmouseout
事件会在鼠标指针移出指定的对象时发生。
onmouseup
事件会在鼠标按键被松开时发生。
32
、说一下
javascript
中
this
的用法
通常情况下
, this
代表的是前面提到的
Globle Object.
也就是
Browser
环境时的
window Object.
当
function
作为某一对象的
method
时
, this
代表这个
function
所属的
object.
下面这段代码有格错误
,
涉及到
this
的使用
:
function Employee(a) {
this.name = a;
}
function init(){
John = Employee(”Johnson”);
alert(John.name);
}
在
init()
中我们少了一个
new keyword.
于是这个代码就会报错
,
因为
Browser
把
Employee
当作是
window obect
的一个
method,
里面的
this
指的就是
window object. init()
应该改为
:
function init(){
John = new Employee(”Johnson”);
alert(John.name);
}
同时我们也可以将
Employee
的
constructor
函数修改
,
防止类似的错误
:
function Employee(a) {
if (!(this instanceof Employee))
return new Employee(a);
this.name = a;
}
33
、介绍一下
javascript
中
function
的用法
在
JavaScript
中
, function
是一种数据类型
,
所有的
function
都是从
buildin
的
Function object
衍生的对象
.
所以在
JavaScript
中
function
可以作为参数传递
,
可以作为
Object
的
property,
也可以当作函数返回值
. function
在
JavaScript
中有两种用法
,
一种是当作
constructor,
前面加上
new keyword
用来建立对象
.
一种是当作
method,
为其他对象调用
.
注意
function
和
method
在中文里的意思相当
,
在有些语言里也可以通用
.
但是在
JavaScript
中
,
它们还是有所区别的
. function
本身是是一个对象
,
而当作为一个方法他属于一个对象时
,
就成为了一个这个对象的
method,
相当于一个对象种的属性
.
也就是说
method
是相对于一个对象而言的
, function
在某些情况下成为了一个对象的
method.
34
、
JavaScript
面试
-
介绍一下
JavaScript
中的对象。
JavaScript
中的
Object
是一组数据的
key-value
的集合
,
有点类似于
Java
中的
HashMap,
所有这些数据都是
Object
里的
property.
通常情况下
, JavaScript
中建立一个对象用”
new
”加上
constructor function
来实现
.
如
new Date(), new Object()
等
.
var book = new Object();
book.name = “JavaScript is Cool”;
book.author = “tom”; book.pages = 514;
上面例子中的
name
和
page
就是名为
book
的对象中的
property.
我们可以用
delete
来删除
Object
中的
property:
“
delete book.name;
”
.
除了
Object, Date
等
buildin
的对象外
,
我们可以写自己的
constructor function,
然后使用
new
就可以建立自己的对象
.
如上面的
book
可以写成
:
function Book (name, author, page) {
this.name = name;
this.author = author;
this.page = page;
}
var abook = new Book(
”
JavaScript is Cool
”
,
“
tom
”
, 514);
35
、介绍一下
JavaScript
中的循环引用
在
JavaScript
中,当一个
DOM
对象包含了一个
JavaScript
对象的引用
(
比如一个事件的
function),
同时那个
JavaScript
的对象又包含了一个这个
DOM
对象的引用,这样就造成了一个循环引用的结构。例如
var s = document.createElement(’span’); document.body.appendChild(s);
s.οnclick=function (){
s.style.backgroundColor = ‘red’;
alert(n);
};
36
、结合
text
这段结构,谈谈
innerHTML outerHTML innerText
之间的区别。
innerHTML
对象里面的
HTML,outerHTML
包括对象和里面的
innerText
对象里面的文本
37
、
settimeout
与
setinteval
的区别?
Settimeout
只执行一次
setInteval
没有次数限制
38
、生成
1-6
之间的整数?
var NowFrame;
NowFrame=Math.random( )*6+1 //
随机生成一个
1-6
之间的小数
NowFrame=parseInt(NowFrame) //
把
1-6
之间的小数转化为整数
39
、请简述
javascript
脚本的执行原理。
(
1
)浏览器接收用户的请求
(
2
)向服务请求某个包含
avascript
脚本的页面
(
3
)应用服务器端向浏览器发送煤响应的消息。
40
、如何让一个
DIV
隐藏起来,如何让一个曾显示出来
Diasplay
属性设置成
none
41
、
isNaN
的作用
判断是否为数字
42
、
JAVASCRIPT
中获取某个元素的方式
Document.getElementById();
此方法在页面中搜索
Document.myform.xxx
此方法按照层次结构来获取
Document.getElementsByName()
此方法用于获得所有的名字相同的元素
43
、
JAVASCRIPT
如何弹出一个模式对话框
window.showModalDialog(
“”
)
44
、在做浮动广告的时候如何把
DIV
层漂起来
style=”position:absolute;”
45
、如何用
JavaScript
隐藏一个超级链接真实的地址?
代码示例如下:
<a onMouseOver=
’
window.status=
”
http://www.merchant-url-here.com
”
; return true;
’
onMouseOut=
’
window.status=
”
Done
”
; return true;
’
href=
”
http://www.affiliate-url-here.com
”
target=
”
_blank
”
>Link Text Here</a>
46
、请写出一个
JavaScript
对象并初始化几个属性
代码如下:
var obj = {
name:
“
IT
公司面试手册”
,
address: “http://www.mianwww.com”,
outfit: { top: “naked”, bottom: “jeans”, shoes: “hiking sho” }
}
47
、
Javascript
面试题:如何给一个
Javascript
的对象属性赋值?如何取得属性值?
一个
Javascript
对象的属性可以用”
.
”操作符或者数组方式来设置和取得:
代码如下:
obj.name =
“
IT
公司面试手册”
;
obj["name"] =
“
IT
公司面试手册”
;
取得
属性的值:
var myname = obj.name; var myname = obj["name"];
两种方法的区别是如果属性的名字如果是保留字的话,用点操作符就会报错,代码如下:
obj.for =
“
IT
公司面试手册”;因为
for
是保留字,所以会报错
obj["for"] =
“
IT
公司面试手册”
就不会报错
48
、
Javascript
面试题:如何创建一个
Javascript Object?
可以有两种方式创建一个
Javascript Object,
代码如下:
第一种方法:
var obj = new Object();
第二种方法:
var ob = {};
49
、为什么
Javascript
和
Java
有类似的名字?
因为
Javascript
语法是基于
Java
语法的
(
松散的
)
50
、当一个用户浏览一个包含
Javascript
的页面,那个程序真正的执行了这些代码?
用户机器的浏览器程序
51
、“
2names
”是一个合法的
Javascript
变量名吗?
不是的
52
、请写出一个
Javascript
数组的定义?
var txt = new Array(
”
tim
”
,
“
kim
”
,
“
jim
”
)
53
、
<noscript>
有什么作用?
用来在客户端浏览器不支持
Javascript
的时候显示标签内部的信息
54
、哪个事件是在表单元素失去焦点的时候触发?
onblur
55
、
Javascript
问题:有几种方法在你的
HTML
页面里面潜入一段
Javascript?
方法有如下几种:
<script src=”filename.js” type=”text/javascript”></script>
<script src=
”
filename.js
”
type=
”
text/javascript
”
charset=
”
utf-8
″
></script>
也可以使用
DOM
来包含
javascript
文件:
window.οnlοad=function(){
if(!document.getElementById || !document.createElement){return;}
var newjs=document.createElement(’script’);
newjs.type=’text/javascript’; newjs.src=’myjsfile.js’;
document.getElementsByTagName(’head’)[0].appendChild(newjs);
}
也可以动态通过
function
添加一段
javascript
到
DOM: // loadscript(
’
filepath/myjsfile.js
’
);
function loadScript(src) {
newjs= document.createElement( “script” );
newjs.src = src;
newjs.type=’text/javascript’;
head = document.getElementsByTagName( “head” )[0];
head.appendChild(newjs);
}
也可以使用
javascript writeln()
来进入一段
javascript:
document.write(
”
<scr
”
+
”
ipt
type=\”text/javascript\”
src=\
”
yoursource.js\
”
></scr
”
+
”
ipt>
”
);
56
、如何用
JavaScript
启动
bat
文件
<script language=javascript>
var wsh = new ActiveXObject(”WScript.Shell”);
wsh.Run(”C:/*****.bat”);
</script>
57
、介绍一下
XMLHttpRequest
对象
通过
XMLHttpRequest
对象,
Web
开发人员可以在页面加载以后进行页面的局部更新。
AJAX
开始流行始于
Google
在
2005
年使用的”
Google Suggest
”。
“
Google Suggest
”就是使用
XMLHttpRequest
对象来创建动态的
Web
接口:
当用户开始输入
google
的搜索框,
Javascript
发送用户输入的字符到服务器,然后服务器返回一个建议列表。
XMLHttpRequest
对象在
IE5.0+, Safari 1.2, Mozilla 1.0/Firefox, Opera 8+
和
NetScapt7
开始被支持。
58
、
AJAX
的全称是什么?
介绍一下
AJAX
AJAX
的全称是
Asynchronous JavaScript And XML.
AJAX
是
2005
年由
Google
发起并流行起来的编程方法,
AJAX
不是一个新的编程语言,但是它是一个使用已有标准的新的编程技术。
使用
AJAX
可以创建更好,更快,更用户界面友好的
Web
应用。
AJAX
技术基于
Javascript
和
HTTP Request.
59
、介绍一下
isNaN
函数?
如果参数不是数字类型的话
isNaN
返回
true
60
、
javascript
都支持哪些布尔型的操作?
&&, ||
和!
61
、“
1
″
+2+4
在
javascript
中得到什么?
因为“
1
”是
String
类型,所以所有的操作数都是
String,
结果为
124
62
、
2+5+
”
8
″得到的结果是什么?
因为
2
和
5
是数字类型,
8
是字符串,所以得到的结果是
78
63
、
javascript
有几种
loop
方法?
for, while, do-while,
没有
foreach
64
、
javascript
如何创建一个新的对象?
var obj = new Object()
或者
var obj = {}
65
、如何为一个对象属性赋值?
obj["age"]=17
或者
obj.age=17
66
、如何为一个数组添加一个值?
arr[arr.length]= value;
67
、
Javascript
的数据类型有几种?
1. Number
数字类型
2. String
字符串类型
3. Boolean
布尔类型
4. Function
函数
5. Object
对象
6. Null
7. Undefined
没有定义类型
68
、将字符串用指定字符分割成数组的函数是什么?
<script type="text/javascript">
var str="How are you doing today?";
document.write(str.split(" ") + "<br />");
document.write(str.split("") + "<br />");
document.write(str.split(" ",3));
</script>
69
、
Javascript
如何创建对象?
答:创建对象的例子:
personObj=new Object()
personObj.firstname="John"
personObj.lastname="Doe"
personObj.age=50
personObj.eyecolor="blue"
70
、怎么取页面的
element
document.getElementById(
”
id
”
)
或者
form.elementName
方法根据
element
的
name
来取
71
、怎么动态创建
element,
怎么设置他的鼠标事件
var myLink = document.createElement('a');
var href = document.createAttribute('href');
myLink.setAttribute(href,'http://www.mianwww.com');
myLink.innerText ="Go here";
var spanAppend = document.getElementById('myDivLink');
spanAppend.appendChild(myLink);
72
、如何用
Javascript
判断上传文件的大小?
有几种方法判断文件的大小:
1.
用
ActiveX
控件,代码如下:
<script type=
”
text/javascript
”
>
function getFileSize(path) {
var fileAO = new ActiveObject(”Scripting.FileSystemObject”);
alert(”File size is:” + fileAO.GetFile(path).size); }
</script>
2.
可以利用
img
标签的
dynsrc
属性来判断大小,
dynsrc
属性是用来插入多媒体文件的,格式可以是
WAV,AVI, MP3
等等,
例如
<img dynsrc=
”
xxx.avi
”
>
这样就可以根据
Image
对象的
fileSize
属性来得到文件的大小,代码如下:
<script type=
”
text/javascript
”
>
function getFileSize(filePath) {
var image=new Image();
image.dynsrc=filePath;
alert(image.fileSize);
}
</script>
73
、
Prototype
如何实现页面局部定时刷新?
可以使用
Prototype
的
Ajax.PeriodicalUpdater
来实现页面的局部刷新。
比如
如果页面上需要定时刷新的
部分为
<div id=
”
refresh
”
></div>
那么可以按照如下代码定时刷新这一部份
new Ajax.PeriodicalUpdater(’refresh’, ‘/your_url’, { method: ‘get’, insertion: Insertion.Top, frequency: 1, decay: 2 });
其中的两个参数
frequency
表示间隔的秒数,缺省情况下为
2
。
decay
表示如果返回的内容相同,则将
frequency
的间隔时间加倍,这里第一次是
1
秒,如果返回内容相同则编程两秒,然后四秒,然后八秒。。。如果每次返回的结果都不一样
那么这个参数就不起作用
74
、
Prototype
如何更新局部页面?
可以使用
Ajax.Updater
来更新局部页面,实例如下:
<div id=
”
company
”
></div>
以上是需要局部更新的容器,使用一下
javascript
来操作
new Ajax.Updater(
’
company
’
,'/your_url
’
,{method:
’
get
’
});
75
、
Prototype
如何为一个
Ajax
添加一个参数?
代码如下:
new Ajax.Request(’/your_url’, { method: ‘get’,
parameters: {name: ‘rainman’, limit: 12} });
76
、
Ajax
请求总共有多少种
Callback?
Ajax
请求总共有八种
Callback
onSuccess
onFailure
onUninitialized
onLoading
onLoaded
onInteractive
onComplete
onException
77
、
Prototype
中如何为一个元素添加一个方法?
Prototype
提供的
Element.addMethods()
方法可以
用来为一个元素添加自定义的方法,如果你有一个对象包含了一些自定义的方法,可以直接把这个对象传给
Element.addMethods();
例如:
var MyUtils = {
truncate: function(element, length){
element = $(element);
return element.update(element.innerHTML.truncate(length));
},
updateAndMark: function(element, html){
return $(element).update(html).addClassName(’updated’);
}
}
Element.addMethods(MyUtils); // now you can:
$(’explanation’).truncate(100);
需要注意的一点就是这些方法的第一个参数必须是这个元素本身,你还可以在方法的最后返回这个元素
78
、
AJAX
都有哪些有点和缺点?
传统的
web
应用允许用户填写表单
(form)
,当提交表单时就向
web
服务器发送一个请求。服务器接收并处理传来的表单,然後返回一个新的网页。这个做法浪费了许多带宽,因为在前後两个页面中的大部分
HTML
代码往往是相同的。由于每次应用的交互都需要向服务器发送请求,应用的响应时间就依赖于服务器的响应时间。这导致了用户界面的响应比本地应用慢得多。
与此不同,
AJAX
应用可以仅向服务器发送并取回必需的数据,它使用
SOAP
或其它一些基于
XML
的
web service
接口,并在客户端采用
JavaScript
处理来自服务器的响应。因为在服务器和浏览器之间交换的数据大量减少,结果我们就能看到响应更快的应用。同时很多的处理工作可以在发出请求的客户端机器上完成,所以
Web
服务器的处理时间也减少了。
使用
Ajax
的最大优点,就是能在不更新整个页面的前提下维护数据。这使得
Web
应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变过的信息。
Ajax
不需要任何浏览器插件,但需要用户允许
JavaScript
在浏览器上执行。就像
DHTML
应用程序那样,
Ajax
应用程序必须在众多不同的浏览器和平台上经过严格的测试。随着
Ajax
的成熟,一些简化
Ajax
使用方法的程序库也相继问世。同样,也出现了另一种辅助程序设计的技术,为那些不支持
JavaScript
的用户提供替代功能。
对应用
Ajax
最主要的批评就是,它可能破坏浏览器后退按钮的正常行为
[4]
。在动态更新页面的情况下,用户无法回到前一个页面状态,这是因为浏览器仅能记下历史记录中的静态页面。一个被完整读入的页面与一个已经被动态修改过的页面之间的差别非常微妙;用户通常都希望单击后退按钮,就能够取消他们的前一次操作,但是在
Ajax
应用程序中,却无法这样做。不过开发者已想出了种种办法来解决这个问题,当中大多数都是在用户单击后退按钮访问历史记录时,通过建立或使用一个隐藏的
IFRAME
来重现页面上的变更。(例如,当用户在
Google Maps
中单击后退时,它在一个隐藏的
IFRAME
中进行搜索,然后将搜索结果反映到
Ajax
元素上,以便将应用程序状态恢复到当时的状态。)
一个相关的观点认为,使用动态页面更新使得用户难于将某个特定的状态保存到收藏夹中。该问题的解决方案也已出现,大部分都使用
URL
片断标识符(通常被称为锚点,即
URL
中
#
后面的部分)来保持跟踪,允许用户回到指定的某个应用程序状态。(许多浏览器允许
JavaScript
动态更新锚点,这使得
Ajax
应用程序能够在更新显示内容的同时更新锚点。)这些解决方案也同时解决了许多关于不支持后退按钮的争论。
进行
Ajax
开发时,网络延迟——即用户发出请求到服务器发出响应之间的间隔——需要慎重考虑。不给予用户明确的回应
[5]
,没有恰当的预读数据
[6]
,或者对
XMLHttpRequest
的不恰当处理
[7]
,都会使用户感到延迟,这是用户不欲看到的,也是他们无法理解的
[8]
。通常的解决方案是,使用一个可视化的组件来告诉用户系统正在进行后台操作并且正在读取数据和内容。
一些手持设备(如手机、
PDA
等)现在还不能很好的支持
Ajax;
用
JavaScript
作的
Ajax
引擎,
JavaScript
的兼容性和
DeBug
都是让人头痛的事
; Ajax
的无刷新重载,由于页面的变化没有刷新重载那么明显,所以容易给用户带来困扰――用户不太清楚现在的数据是新的还是已经更新过的;现有的解决有:在相关位置提示、数据更新的区域设计得比较明显、数据更新后给用户提示等
;
对串流媒体的支持没有
FLASH
、
Java Applet
好
;
79
、
Ajax
主要包含了哪些技术?
Ajax
(
Asynchronous JavaScript + XML
)的定义
基于
web
标准(
standards-based presentation
)
XHTML+CSS
的表示;
使用
DOM
(
Document Object Model
)进行动态显示及交互;
使用
XML
和
XSLT
进行数据交换及相关操作;
使用
XMLHttpRequest
进行异步数据查询、检索;
使用
JavaScript
将所有的东西绑定在一起。英文参见
Ajax
的提出者
Jesse James Garrett
的原文
,
原文题目
(Ajax: A New Approach to Web Applications)
。
类似于
DHTML
或
LAMP
,
AJAX
不是指一种单一的技术,而是有机地利用了一系列相关的技术。事实上,一些基于
AJAX
的“派生
/
合成”式(
derivative/composite
)的技术正在出现,如“
AFLAX
”。
AJAX
的应用使用支持以上技术的
web
浏览器作为运行平台。这些浏览器目前包括:
Mozilla
、
Firefox
、
Internet Explorer
、
Opera
、
Konqueror
及
Safari
。但是
Opera
不支持
XSL
格式对象,也不支持
XSLT
。
80
、
DOM
的优缺点都有什么?
DOM
的优势主要表现在:易用性强,使用
DOM
时,将把所有的
XML
文档信息都存于内存中,并且遍历简单,支持
XPath
,增强了易用性。
DOM
的缺点主要表现在:效率低,解析速度慢,内存占用量过高,对于大文件来说几乎不可能使用。另外效率低还表现在大量的消耗时间,因为使用
DOM
进行解析时,将为文档的每个
element
、
attribute
、
processing- instrUCtion
和
comment
都创建一个对象,这样在
DOM
机制中所运用的大量对象的创建和销毁无疑会影响其效率。
81
、谈谈
javascript
数组排序方法
sort()
的使用,重点介绍
sort()
参数的使用及其内部机制
sort
的实现的功能类似
JAVA
的比较器,数据排序从多维数组的第一维开始排序
可以自己定义排序方法,很不多的函数
82
、简述
DIV
元素和
SPAN
元素的区别。
DIV
有回车,
SPAN
没有
83
、结合
<span id=
”
outer
”
><span id=
”
inner
”
>text</span></span>
这段结构,谈谈
innerHTML outerHTML innerText
之间的区别。
innerHTML
对象里面的
HTML,outerHTML
包括对象和里面的
innerText
对象里面的文本
84
、说几条
XHTML
规范的内容(至少
3
条)
属性加引号,不能有不匹配的标签,加定义
85
、对
Web
标准化(或网站重构)知道哪些相关的知识,简述几条你知道的
Web
标准?
W3C
标准等
86
、如何用
Javascript
校验数字型
?
var re=/^\d{1,8}$|\.\d{1,2}$/;
var str=document.form1.all(i).value;
var r=str.match(re);
if (r==null) {
sign=-4; break;
} else{
document.form1.all(i).value=parseFloat(str);
}
87
、主要的
Ajax
框架都有什么?
* Dojo
(
dojotoolkit.org
);
* Prototype
和
Scriptaculous
(
www.prototypejs.org和script.aculo.us
);
* Direct Web Reporting
(
getahead.org/dwr
);
* Yahoo! User Interface Library
(
developer.yahoo.com/yui
);
* Google Web Toolkit
(
code.google.com/webtoolkit
)。
*JQuery
88
、
AJAX
的优缺点都有什么?
1
、最大的一点是页面无刷新,用户的体验非常好。
2
、使用异步方式与服务器通信,具有更加迅速的响应能力。
3
、可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理,减轻服务器和带宽的负担,节约空间和宽带租用成本。并且减轻服务器的负担,
ajax
的原则是“按需取数据”,可以最大程度的减少冗余请求,和响应对服务器造成的负担。
4
、基于标准化的并被广泛支持的技术,不需要下载插件或者小程序。
ajax
的缺点
1
、
ajax
不支持浏览器
back
按钮。
2
、安全问题
AJAX
暴露了与服务器交互的细节。
3
、对搜索引擎的支持比较弱。
4
、破坏了程序的异常机制。
5
、不容易调试。
89
、
Ajax
的工作原理
Ajax
的核心是
JavaScript
对象
XmlHttpRequest
。该对象在
Internet Explorer 5
中首次引入,它是一种支持异步请求的技术。简而言之,
XmlHttpRequest
使您可以使用
JavaScript
向服务器提出请求并处理响应,而不阻塞用户。
90
、谈一下
Javascript
中的对象
JavaScript
中的
Object
是一组数据的
key-value
的集合
,
有点类似于
Java
中的
HashMap,
所有这些数据都是
Object
里的
property.
通常情况下
, JavaScript
中建立一个对象用”
new
”加上
constructor function
来实现
.
如
new Date(), new Object()
等
.
var book = new Object();
book.name = “JavaScript is Cool”;
book.author = “tom”;
book.pages = 514;
上面例子中的
name
和
page
就是名为
book
的对象中的
property.
我们可以用
delete
来删除
Object
中的
property:
“
delete book.name;
”
.
除了
Object, Date
等
buildin
的对象外
,
我们可以写自己的
constructor function,
然后使用
new
就可以建立自己的对象
.
如上面的
book
可以写成
:
function Book (name, author, page) {
this.name = name;
this.author = author;
this.page = page;
}
var abook = new Book(”JavaScript is Cool”, “tom”, 514);
91
、
Javascript
脚本必须写在什么标签之内。
<script>
92
、
javascript
的优缺点和内置对象
1
)优点:简单易用,与
Java
有类似的语法,可以使用任何文本编辑工具编
写,只需要浏览器就可执行程序,并且事先不用编译,逐行执行,无需进行严格
的变量声明,而且内置大量现成对象,编写少量程序可以完成目标;
2
)缺点:不适合开发大型应用程序;
3
)
Javascript
有
11
种内置对象:
Array
、
String
、
Date
、
Math
、
Boolean
、
Number
、
Function
、
Global
、
Error
、
RegExp
、
Object
。
93
、
介绍一下
XMLHttpRequest
对象的常用方法和属性
open(
“
method
”
,
”
URL
”
)
建立对服务器的调用,第一个参数是
HTTP
请求
方式可以为
GET
,
POST
或任何服务器所支持的您想调用的方式。
第二个参数是请求页面的
URL
。
send()
方法,发送具体请求
abort()
方法,停止当前请求
readyState
属性
请求的状态
有
5
个可取值
0=
未初始化
,
1=
正在加载,
2=
以加载,
3=
交互中,
4=
完成
responseText
属性
服务器的响应,表示为一个串
reponseXML
属性
服务器的响应,表示为
XML
status
服务器的
HTTP
状态码,
200
对应
ok 400
对应
not found
94
、
XMLHttpRequest
对象在
IE
和
Firefox
中创建方式有没有不同?
有,
IE
中通过
new ActiveXObject()
得到,
Firefox
中通过
new XMLHttpRequest()
得到
95
、
在
Ajax
应用中信息是如何在浏览器和服务器之间传递的
Ajax
与服务端是通过字符串或者
xml
进行交互的
96
、
Ajax
和
javascript
的区别?
javascript
是一种在浏览器端执行的脚本语言,
Ajax
是一种创建交互式网页应用的开发技术
,它是利用了一系列相关的技术其中就包括
javascript
。
Javascript
是由网景公司开发的一种脚本语言,它和
sun
公司的
java
语言是没有任何关系的,它们相似的名称只是一种行销策略。
在一般的
web
开发中,
javascript
是在浏览器端执行的,我们可以用
javascript
控制浏览器的行为和内容。