JavaScript中indexOf方法的妙用
利用它的这个属性,我们可以叫它干很多事,只要你指挥得当。
#1 一、判断OS
虽然HTTP协议是跨平台的,但你编写的HTML页面最终的显示效果却往往与客户端所用的操作系统有关。比如MSOS系列(MS-DOS,Windows 9X/NT等)对文本的“另起一行”的定义是“回车加换行”,但Mac只要一个“回车”就够了,而Unix/Linux仅仅使用“换行”。这样你在某页面中输出一些要分行的东东可能就会因此产生“兼容”问题……没关系啦,看看下面的例子:
第一步:在页面的某一位置插入以下脚本:
<script language=″JavaScript″><!--
var newline=′′;//定义″另起一行″的全局变量
var browserVer=navigator.appVersion;
if(browserVer.indexOf(′Win′)!=-1){//如果当前浏览器的版本是Windows版的
newline=′\r\n′;}
else{
if(browserVer.indexOf(′Mac′)!=-1){//如果当前浏览器的版本是Mac版的
newline=′\r′;}
else{//那应该就是Linux版的了
newline=′\n′;}
}
-->
</script>
第二步:在页面主体(<body>……</body>)中使用:
<script language=″JavaScript″><!--
var win=self.window;
win.alert(′第一行′+newline+′第二行′+newline+′第三行′);//可以将newline作为一个变量在任意位置引用
-->
</script>
#1 二、判断浏览器
浏览器兼容问题一直困扰着广大网页编写人员,关于这个问题的解决方法有许多,但我想最彻底、最有效的措施恐怕是为每种主流浏览器分别编写一个页面版本,这样就近乎完美了。试试下面的代码,它将帮你把你的访客带入与客户端浏览器相对应的页面:
<!-- 把这段代码放在页面的前部,最好放在<head>……</head>之间 -->
<script language=″JavaScript″><!--
var browser=navigator.appName;
var version=navigator.appVersion;
var ver_number=parseFloat(version.substring(0,version.indexOf(′(′)));
//如果客户端浏览器是IE并且版本高于4.0
if(browser.indexOf(′Microsoft Internet Explorer′)!=-1&&ver_number>=4.0) top.location=′/ie4/index.html′ //假设你为4.0及更高版本的IE准备的页面是/ie4/index.html
//如果客户端浏览器是Netscape并且版本高于4.0
else if(browser.indexOf(′Netscape′)!=-1&&ver_number>=4.0) top.location=′/nc4/index.html′ //假设你为Netscape 4.X准备的页面是/nc4/index.html
else top.location=′/normal/index.html′ //假设你为其他浏览器及低版本的NC、IE准备的页面是/normal/index.html
-->
</script>
#1 三、判断页面的位置
现在网上“拷贝+粘贴”大法极为盛行,我们也没有办法让自己的站点不被COPY,但有些人实在太懒了,他们连COPY的时间都舍不得花,直接就把你的页面FRAME到他们的页面中去了……当然你也可以用判断框架名称的方法来预防这个问题,但是如果你的这个页面要被很多框架页面使用,这样做是不是比较笨?看看下面简单而又短小代码啦,相信会有所用处的……
<!-- 把这段代码插在<head>……</head>之间 -->
<script language=″JavaScript″><!--
var hostname=′ctsight.topcool.net′; //定义你的站点的主机名
var yesno=top.location.hostname.indexOf(′hostname′); //判断当前顶级窗口的URL的主机名部分
if(yesno==-1){ //如果当前顶级窗口的URL的主机名部分不是你的站点
self.alert(′对不起,您不能在′+top.location+′页中引用′+self.document.title+′页!′);
top.location=′http://ctsight.topcool.net/documents/about.html′; //转到你站点上关于″盗版″的警示说明页……
}
-->
</script>