微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题JavaScript中indexOf方法的妙用
栏目互联网时代
作者周辉腾
发布2000年第15期
  JavaScript中indexOf方法的语法:theString.indexOf(subString,[n])。它在指定字符串对象中寻找传送的子字符串,如果指定参数n,它可以从指定的位置开始向前搜索(从左往右)。如果找到子字符串,返回子字符串在字符串中的位置;如果没有找到相应的字符串,返回-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>
  二、判断浏览器
  浏览器兼容问题一直困扰着广大网页编写人员,关于这个问题的解决方法有许多,但我想最彻底、最有效的措施恐怕是为每种主流浏览器分别编写一个页面版本,这样就近乎完美了。试试下面的代码,它将帮你把你的访客带入与客户端浏览器相对应的页面:
  <!-- 把这段代码放在页面的前部,最好放在<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>
  三、判断页面的位置
  现在网上“拷贝+粘贴”大法极为盛行,我们也没有办法让自己的站点不被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>