重装Windows XP后恢复Ubuntu Grub启动菜单

重装Windows XP后,Ubuntu系统的启动引导文件会丢失。需借助工具进入Ubuntu系统桌面通过终端的命令创建恢复Ubuntu的引导菜单。
1.先进入Ubuntu系统的桌面,两种方法:
(1)在Windows XP下从硬盘虚拟Live CD进入Ubuntu 系统(需要下载Ubuntu的ISO文件,进行grub硬盘启动配置),可参考【Win XP下从硬盘安装Ubuntu[LIinux] 操作系统】
(2)使用Ubuntu Live CD启动,有安装光盘的较方便。
插入CD盘重启,进入Ubuntu桌面即可。
2.进入Ubuntu系统桌面,在终端输入命令[绿色字体所示]:

sudo grub
[ Minimal BASH-like line editing is supported. For
the first word, TAB lists possible command
completions. Anywhere else TAB lists the possible
completions of a device/filename. ]
grub> find /boot/grub/stage1
(hd0,6)
grub> root (hd0,6)
grub> setup (hd0)
Checking if “/boot/grub/stage1″ exists… yes
Checking if “/boot/grub/stage2″ exists… yes
Checking if “/boot/grub/reiserfs_stage1_5″ exists… yes
Running “embed /boot/grub/reiserfs_stage1_5 (hd0)”… 19 sectors are embedded
.
succeeded
Running “install /boot/grub/stage1 (hd0) (hd0)1+19 p (hd0,6)/boot/grub/stage2
/boot/grub/menu.lst”… succeeded
Done.
grub> quit
ubuntu@ubuntu:~$ sudo grub
Probing devices to guess BIOS drives. This may take a long time.
ubuntu@ubuntu:~$

3.重新启动系统,OK!

Posted in 网络转载 | 5 Comments

Hadoop学习笔记二 安装部署

本文主要是以安装和使用hadoop-0.12.0为例,指出在部署Hadoop的时候容易遇到的问题以及如何解决。
硬件环境
共有3台机器,均使用的FC5系统,Java使用的是jdk1.6.0。IP配置如下:
dbrg-1:202.197.18.72
dbrg-2:202.197.18.73
dbrg-3:202.197.18.74

这里有一点需要强调的就是,务必要确保每台机器的主机名和IP地址之间能正确解析。

一个很简单的测试办法就是ping一下主机名,比如在dbrg-1上ping dbrg-2,如果能ping通就OK!若不能正确解析,可以修改/etc/hosts文件,如果该台机器作Namenode用,则需要在hosts文件 中加上集群中所有机器的IP地址及其对应的主机名;如果该台机器作Datanode用,则只需要在hosts文件中加上本机IP地址和Namenode机 器的IP地址。

以本文为例,dbrg-1中的/etc/hosts文件看起来就应该是这样的:
127.0.0.0         localhost     localhost
202.197.18.72     dbrg-1        dbrg-1
202.197.18.73     dbrg-2        dbrg-2
202.197.18.74     dbrg-3        dbrg-3

dbrg-2中的/etc/hosts文件看起来就应该是这样的:
127.0.0.0         localhost    localhost
202.197.18.72     dbrg-1       dbrg-1
202.197.18.73     dbrg-2       dbrg-2

在上一篇学习笔记中提到过,对于Hadoop来说,在HDFS看来,节点分为Namenode和 Datanode,其中Namenode只有一个,Datanode可以是很多;在MapReduce看来,节点又分为Jobtracker和 Tasktracker,其中Jobtracker只有一个,Tasktracker可以是很多。
我是将namenode和jobtracker部署在dbrg-1上,dbrg-2,dbrg-3作为datanode和tasktracker。当然你也可以将namenode,datanode,jobtracker,tasktracker全部部署在一台机器上
目录结构
由于Hadoop要求所有机器上hadoop的部署目录结构要相同,并且都有一个相同的用户名的帐户。
我的三台机器上是这样的:都有一个dbrg的帐户,主目录是/home/dbrg
Hadoop部署目录结构如下:/home/dbrg/HadoopInstall,所有的hadoop版本放在这个目录中。
将hadoop0.12.0压缩包解压至HadoopInstall中,为了方便以后升级,建议建立一个链接指向要使用的hadoop版本,不妨设为hadoop
[dbrg@dbrg-1:HadoopInstall]$ln  -s  hadoop0.12.0   hadoop
这样一来,所有的配置文件都在/hadoop/conf/目录中,所有执行程序都在/hadoop/bin目录中。
但是由于上述目录中hadoop的配置文件和hadoop的安装目录是放在一起的,这样一旦日后升级hadoop版本的时候所有的配置文件都会被覆盖,因此建议将配置文件与安装目录分离, 一种比较好的方法就是建立一个存放配置文件的目录,/home/dbrg/HadoopInstall/hadoop-config/,然后将 /hadoop/conf/目录中的hadoop_site.xml,slaves,hadoop_env.sh三个文件拷贝到hadoop- config/目录中(这个问题很奇怪,在官网上的Getting Started With Hadoop中 说是只需要拷贝这个三个文件到自己创建的目录就可以了,但我在实际配置的时候发现还必须把masters这个文件也拷贝到hadoop-conf/目录中 才行,不然启动Hadoop的时候就会报错说找不到masters这个文件),并指定环境变量$HADOOP_CONF_DIR指向该目录。环境变量在 /home/dbrg/.bashrc和/etc/profile中设定。
综上所述,为了方便以后升级版本,我们需要做到配置文件与安装目录分离,并通过设定一个指向我们要使用的版本的hadoop的链接,这样可以减少我们对配置文件的维护。在下面的部分,你就会体会到这样分离以及链接的好处了。
SSH设置
在Hadoop启动以后,Namenode是通过SSH(Secure Shell)来启动和停止各个节点上的各种守护进程的,这就需要在节点之间执行指令的时候是不需要输入密码的方式,故我们需要配置SSH使用无密码公钥认证的方式。
首先要保证每台机器上都装了SSH服务器,且都正常启动。实际中我们用的都是OpenSSH,这是SSH协议的一个免费开源实现。FC5中默认安装的OpenSSH版本是OpenSSH4.3P2。
以 本文中的三台机器为例,现在dbrg-1是主节点,它需要主动发起SSH连接到dbrg-2和dbrg-3,对于SSH服务来说,dbrg-1就是SSH 客户端,而dbrg-2、dbrg-3则是SSH服务端,因此在dbrg-2,dbrg-3上需要确定sshd服务已经启动。简单的说,在dbrg-1上 需要生成一个密钥对,即一个私钥,一个公钥。将公钥拷贝到dbrg-2,dbrg-3上,这样,比如当dbrg-1向dbrg-2发起ssh连接的时 候,dbrg-2上就会生成一个随机数并用dbrg-1的公钥对这个随机数进行加密,并发送给dbrg-1;dbrg-1收到这个加密的数以后用私钥进行 解密,并将解密后的数发送回dbrg-2,dbrg-2确认解密的数无误后就允许dbrg-1进行连接了。这就完成了一次公钥认证过程。

对于本文中的三台机器,首先在dbrg-1上生成密钥对:
[dbrg@dbrg-1:~]$ssh-keygen  -t  rsa
这 个命令将为dbrg-1上的用户dbrg生成其密钥对,询问其保存路径时直接回车采用默认路径,当提示要为生成的密钥输入passphrase的时候,直 接回车,也就是将其设定为空密码。生成的密钥对id_rsa,id_rsa.pub,默认存储在/home/dbrg/.ssh目录下。然后将 id_rsa.pub的内容复制到每个机器(也包括本机)的/home/dbrg/.ssh/authorized_keys文件中,如果机器上已经有 authorized_keys这个文件了,就在文件末尾加上id_rsa.pub中的内容,如果没有authorized_keys这个文件,直接cp 或者scp就好了,下面的操作假设各个机器上都没有authorized_keys文件。

对于dbrg-1
[dbrg@dbrg-1:.ssh]$cp id_rsa.pub authorized_keys

对于dbrg-2(dbrg-3同dbrg-2的方法)
[dbrg@dbrg-2:~]$mkdir .ssh
[dbrg@dbrg-1:.ssh]$scp authorized_keys dbrg-2:/home/dbrg/.ssh/
此处的scp就是通过ssh进行远程copy,此处需要输入远程主机的密码,即dbrg-2机器上dbrg帐户的密码,当然,你也可以用其他方法将authorized_keys文件拷贝到其他机器上

[dbrg@dbrg-2:.ssh]$chmod 644 authorized_keys
这一步非常关键,必须保证authorized_keys只对其所有者有读写权限,其他人不允许有写的权限,否则SSH是不会工作的。我就曾经在配置SSH的时候郁闷了好久。

[dbrg@dbrg-2:.ssh]ls -la
drwx—— 2 dbrg dbrg .
drwx—— 3 dbrg dbrg ..
-rw-r–r– 1 dbrg dbrg authorized_keys
注意每个机器上的.ssh目录的ls -la都应该和上面是一样的

接着,在三台机器上都需要对sshd服务进行配置(其实是可以不用配置的,完成了上面的那些操作了以后SSH就已经可以工作了),在三台机器上修改文件/etc/ssh/sshd_config
#去除密码认证
PasswordAuthentication  no
AuthorizedKeyFile   .ssh/authorized_keys

至此各个机器上的SSH配置已经完成,可以测试一下了,比如dbrg-1向dbrg-2发起ssh连接
[dbrg@dbrg-1:~]$ssh  dbrg-2
如果ssh配置好了,就会出现以下提示信息
The authenticity of host [dbrg-2] can’t be established.
Key fingerprint is 1024 5f:a0:0b:65:d3:82:df:ab:44:62:6d:98:9c:fe:e9:52.
Are you sure you want to continue connecting (yes/no)?
OpenSSH告诉你它不知道这台主机,但是你不用担心这个问题,因为你是第一次登录这台主机。键入“yes”。这将把这台主机的“识别标记”加到“~/.ssh/know_hosts”文件中。第二次访问这台主机的时候就不会再显示这条提示信息了。
然后你会发现不需要输入密码就可以建立ssh连接了,恭喜你,配置成功了
不过,别忘了测试本机ssh  dbrg-1
Hadoop环境变量
在/home/dbrg/HadoopInstall/hadoop-conf目录下的hadoop_env.sh中设置Hadoop需要的环境变量,其中JAVA_HOME是必须设定的变量。HADOOP_HOME变量可以设定也可以不设定,如果不设定,HADOOP_HOME默认的是bin目录的父目录,即本文中的/home/dbrg/HadoopInstall/hadoop。我的是这样设置的
export  HADOOP_HOME=/home/dbrg/HadoopInstall/hadoop
export  JAVA_HOME=/usr/java/jdk1.6.0
从这个地方就可以看出前面所述的创建hadoop0.12.0的链接hadoop的优点了,当以后更新hadoop的版本的时候,就不需要在改配置文件,只需要更改链接就可以了。
Hadoop配置文件
如前所述,在hadoop-conf/目录下,打开slaves文件,该文件用来指定所有的从节点,一行指定一个主机名。即本文中的dbrg-2,dbrg-3,因此slaves文件看起来应该是这样的
dbrg-2
dbrg-3
在 conf/目录中的hadoop-default.xml中包含了Hadoop的所有配置项,但是不允许直接修改!可以在hadoop-conf/目录下 的hadoop-site.xml里面定义我们需要的项,其值会覆盖hadoop-default.xml中的默认值。可以根据自己的实际需要来进行定 制。以下是我的配置档:
<?xml version=”1.0″?>
<?xml-stylesheet type=”text/xsl” href=”configuration.xsl”?>
<!– Put site-specific property overrides in this file. –>
<configuration>
<property>
<name>fs.default.name</name>
<value>dbrg-1:9000</value>
<description>The name of the default file system. Either the literal string “local” or a host:port for DFS.</description>
</property>
<property>
<name>mapred.job.tracker</name>
<value>dbrg-1:9001</value>
<description>The host and port that the MapReduce job tracker runs at. If “local”, then jobs are run in-process as a single map and reduce task.</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/dbrg/HadoopInstall/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>dfs.name.dir</name>
<value>/home/dbrg/HadoopInstall/filesystem/name</value>
<description>Determines where on the local filesystem the DFS name node should store the name table. If this is a comma-delimited list of directories then the name table is replicated in all of the directories, for redundancy. </description>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/dbrg/HadoopInstall/filesystem/data</value>
<description>Determines where on the local filesystem an DFS data node should store its blocks. If this is a comma-delimited list of directories, then data will be stored in all named directories, typically on different devices. Directories that do not exist are ignored.</description>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
<description>Default block replication. The actual number of replications can be specified when the file is created. The default is used if replication is not specified in create time.</description>
</property>
</configuration>
部署Hadoop
前面讲的这么多Hadoop的环境变量和配置文件都是在dbrg-1这台机器上的,现在需要将hadoop部署到其他的机器上,保证目录结构一致。
[dbrg@dbrg-1:~]$scp  -r  /home/dbrg/HadoopInstall  dbrg-2:/home/dbrg/
[dbrg@dbrg-1:~]$scp  -r  /home/dbrg/HadoopInstall  dbrg-3:/home/dbrg/
至此,可以说,Hadoop已经在各个机器上部署完毕了下面就让我们开始启动Hadoop吧
启动Hadoop
启动之前,我们先要格式化namenode,先进入~/HadoopInstall/hadoop目录,执行下面的命令
[dbrg@dbrg-1:hadoop]$bin/hadoop  namenode  -format
不出意外,应该会提示格式化成功。如果不成功,就去hadoop/logs/目录下去查看日志文件
下面就该正式启动hadoop啦,在bin/下面有很多启动脚本,可以根据自己的需要来启动。
* start-all.sh 启动所有的Hadoop守护。包括namenode, datanode, jobtracker, tasktrack
* stop-all.sh 停止所有的Hadoop
* start-mapred.sh 启动Map/Reduce守护。包括Jobtracker和Tasktrack
* stop-mapred.sh 停止Map/Reduce守护
* start-dfs.sh 启动Hadoop DFS守护.Namenode和Datanode
* stop-dfs.sh 停止DFS守护

在这里,简单启动所有守护
[dbrg@dbrg-1:hadoop]$bin/start-all.sh

同样,如果要停止hadoop,则
[dbrg@dbrg-1:hadoop]$bin/stop-all.sh
HDFS操作
运行bin/目录的hadoop命令,可以查看Haoop所有支持的操作及其用法,这里以几个简单的操作为例。

建立目录
[dbrg@dbrg-1:hadoop]$bin/hadoop  dfs  -mkdir  testdir
在HDFS中建立一个名为testdir的目录

复制文件
[dbrg@dbrg-1:hadoop]$bin/hadoop  dfs  -put  /home/dbrg/large.zip  testfile.zip
把本地文件large.zip拷贝到HDFS的根目录/user/dbrg/下,文件名为testfile.zip

查看现有文件
[dbrg@dbrg-1:hadoop]$bin/hadoop  dfs  -ls

Posted in 网络转载 | Leave a comment

jquery图表统计插件-highcharts详解

今天做数据分析的时候无意间发现一款jquery插件highcharts非常符合我的需求,于是我就在baidu上google了一下,受益良多,在这里我稍微补充一下啊!

   jquery图表统计插件-highcharts详解
        那么这款插件到底肿么样泥,看一下我的注释你就知道了!
   <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”> 
   <html xmlns=”http://www.w3.org/1999/xhtml”> 
   <head> 
   <meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″>
   <title>渠道流量统计</title> 
   <style type=”text/css”> 
    body {margin: 0; padding: 0;} 
   </style> 
       <!–引入jquery插件–>
       <script type=”text/javascript” src=”http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js”></script>
       <!–引入highchart插件–>
       <script src=”highcharts.js” type=”text/javascript”></script> 
       <!–引入highchart主题–>
       <script src=”grid.js” type=”text/javascript”></script> 
       <!–调用数据,生成chart–>
       <script type=”text/javascript”> 
           var chart; 
           $(document).ready(function () { 
               chart = new Highcharts.Chart({ 
                   chart: {  //整体控制
                       renderTo: ‘container’,  //图表容器的DIVbar:横向条形图
                       defaultSeriesType: ‘line’, //可选,默认为line【line:折线;spline:平滑的线;area:区域图;bar:曲线图;pie:饼图;scatter:点状图等等;
                       marginRight: 130, //外边距控制 (上下左右空隙)
                       marginBottom: 25  //外边距控制
                   }, 
                   title: { 
                       text: ‘渠道流量统计’, //主标题
                       x: -20            //标题相对位置  默认居中
                   },
                   subtitle: {
                   text: ‘趋势图’,//副标题
                   x: 60           //标题相对位置
                   },
                   xAxis: {          //x轴数据
                       categories: ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日'] 
                   }, 
                   yAxis: {          //y轴数据
                       title: { 
                           text: ‘标量’ 
                       }, 
                       plotLines: [{  //标线
                           value: 0, 
                           width: 1, 
                           color: '#808080' 
                       }] 
                   }, 
                   tooltip: {        //数据点的提示框
                       formatter: function () { 
                           return ‘<b>’ + this.series.name + ‘</b><br/>’ + this.x + ‘: ‘ + this.y; 
                       //formatter需要一个回调函数,可以通过this关键字打点得到当前一些图表信息
                   }, 
                   legend: { 
                       layout: ‘vertical’, 
                       align: ‘right’, 
                       verticalAlign: ‘top’, 
                       x: -10, 
                       y: 100, 
                       borderWidth: 0 
                   }, 
                   series: [{   //数据数组,json格式中name为这组数据的名字,data为这组数据的数组
                       name: '渠道一', 
                       data: [2,7,9,25,31,32,9] 
                   }, { 
                       name: ‘渠道二’, 
                       data: [6,14,19,23,25,32,12] 
                   }, { 
                       name: ‘渠道三’, 
                       data: [7,16,17,20,25,26,4] 
                   }, { 
                       name: ‘渠道四’, 
                       data: [7,16,18,24,28,29,6] 
                   }, { 
                       name: ‘渠道五’, 
                       data: [9, 10, 12, 16, 18, 32, 15] 
                   }] 
               }); 
    
           }); 
       </script> 
   </head> 
   <body> 
      <!– 装载图表的容器 –> 
       <div id=”container” style=”width: 100%; height: 600px”> 
       </div> 
   </body> 
   </html> 
   效果如下:
  jquery图表统计插件-highcharts详解
  其实大多数blog的博文都没有对这个插件进行深入探究,估计大家都没时间吧! 
我先补充点,以后慢慢再发现:
1.如何去掉右下角的 http:// www.highcharts.com标识:
  在highcharts.js中找到:
  credits: {
       enabled: true,
       text: ‘Highcharts.com’,
       href: ‘http://www.highcharts.com’,
       position: {
           align: ‘right’,
           x: -10,
           verticalAlign: ‘bottom’,
           y: -5
       }
  只要改掉这个地方就行了,或者直接取消,enabled:false
   或者
      text: ‘yourself.com’,
       href: ‘http://www.yourself.com’,
Posted in 网络转载 | Leave a comment

SEO学习笔记–sitemap

1.sitemap:
   Sitemap 可以让管理员通知搜索引擎他们网站上有哪些可供抓取的网页。最简单的 Sitepmap 形式,就是 XML 文件,在其中列出网站中的网址以及关于每个网址的其他元数据(上次更新的时间、更改的频率以及相对于网站上其他网址的重要程度为何等),以便搜索引擎可以更加智能地抓取网站。
   google:
          Google SiteMap Protocol是Google自己推出的一种站点地图协议,此协议文件基于早期的robots.txt文件协议,并有所升级。在Google官方指南中指出加入了Google SiteMap文件的网站将更有利于Google网页爬行机器人的爬行索引,这样将提高索引网站内容的效率和准确度。文件协议应用了简单的XML格式,一共用到6个标签,其中关键标签包括链接地址、更新时间、更新频率和索引优先权。
    eg.
        <?xml version=”1.0″ encoding=”UTF-8″?>
        <urlset xmlns=”http://www.google.com/schemas/sitemap/0.84″>
        <url>
        <loc>http://www.example.com/</loc>
        <lastmod>2011-01-01</lastmod>
        <changefreq>monthly</changefreq>
        <priority>0.8</priority>
        </url>
        <url>
           … …
        </url>
        </urlset>
  标签语法:
        <urlset xmlns=”

                 这一行定义了此xml文件的命名空间
        <url></url>        
                 这是具体某一个链接的定义入口,你所希望展示在SiteMap文件中的每一个链接都要用<包含在里面,这是必须的。
        <loc></loc>
             用<loc>描述出具体的链接地址,这里需要注意的是链接地址中的一些特殊字符必须转换为XML(HTML)定义的转义字符。
        SEO学习笔记(二)

        <lastmod></lastmod>
             <lastmod>是用来指定该链接的最后更新时间,这个 很重要。Google的机器人会在索引此链接前先和上次索引记录的最后更新时间进行比较,如果时间一样就会跳过不再索引。所以如果你的链接内容基于上次 Google索引时的内容有所改变,应该更新该时间,让Google下次索引时会重新对该链接内容进行分析和提取关键字。
   年:YYYY(2005)
年和月:YYYY-MM(2005-06)
年月日:YYYY-MM-DD(2005-06-04)
年月日小时分钟:YYYY-MM-DDThh:mmTZD(2005-06-04T10:37+08:00)
年月日小时分钟秒:YYYY-MM-DDThh:mmTZD(2005-06-04T10:37:30+08:00)
这里需注意的是TZD,TZD指定就是本地时间区域标记,中国是+08:00
         <changefreq></changefreq>
              用这个标签告诉Google此链接可能会出现的更新频率,比如首页肯定就要用always(经常),而对于很久前的链接或者不再更新内容的链接就可以用yearly(每年)。这里可以用来描述的单词共这几个:”always”, “hourly”, “daily”, “weekly”, “monthly”, “yearly”,”never”。
         <priority></priority>
              <priority>是用来指定此链接相对于其他链接的优先权比值,此值定于0.0 – 1.0之间,一个网页的默认优先级为 0.5。
    baidu:
         百度sitemap协议是百度支持的网页收录标准,站长可以将网站中的网页url制作成标准的sitemap文件,用于指引百度搜索引擎快速、全面的抓取或更新网站上内容及处理错误信息。 百 度sitemap支持标准的XML格式sietmap文件以及文本格式的sitemap文件,如果您有多个sitemap文件,还可以使用sitemap 索引文件提交。每个sitemap文件最多可包含 50,000 个网址,并且应小于10MB(10,485,760字节)。支持UTF-8 编码和GBK编码的文件。
      eg.
          <?xml version=”1.0″ encoding=”utf-8″?>
          <!– XML文件需以utf-8编码–>
          <urlset>
          <!–必填标签–>
          <url>
          <!–必填标签,这是具体某一个链接的定义入口,每一条数据都要用<url>和</url>包含在里面,这是必须的 –>
          <loc>http://www.yoursite.html/yoursite.html</loc>
          <!–必填,URL链接地址,长度不得超过256字节–>
          <lastmod>2009-12-14</lastmod>
          <!–可以不提交该标签,用来指定该链接的最后更新时间–>
          <changefreq>daily</changefreq>
          <!–可以不提交该标签,用这个标签告诉此链接可能会出现的更新频率 –>
          <priority>0.8</priority>
          <!–可以不提交该标签,用来指定此链接相对于其他链接的优先权比值,此值定于0.0-1.0之间–>
          </url>
          <url>
          <loc>http://www.yoursite.html/yoursite2.html</loc>
          <lastmod>2010-05-01</lastmod>
          <changefreq>daily</changefreq>
          <priority>0.8</priority>
          </url>
          </urlset>
     标签语法:
标签名称   属性          标签说明                标签类型  标签限制                     可选/必选 

urlset  / urlset用来标记整个文档的开头  必选 
url  / url标记每条信息的开始和结束  最多出现无限次
必选 
loc  / 该条数据的存放地址  url  最小长度12个字符
最大长度2048个字符
以”http://”开头
必选 
lastmod  / 指该条数据的最新一次更新时间  日期  时间格式为yyyy-mm-dd
可选 
changefreq  / 指该条数据的更新频率  字符串  有效值为:always、hourly、daily、weekly、monthly、yearly、never
可选 
priority  / 用来指定此链接相对于其他链接的优先权比值,此值定于0.0-1.0之间  小数  小于等于1.0
大于等于0.0
可选 
data  / 小数  小于等于1.0
大于等于0.0
必选 
display  / 必选 

 

Posted in 网络转载 | Leave a comment

curvyCorners详解【一款兼容任何浏览器的生成圆角的js插件】

 

今天我发现一款非常不错的js插件:curvyCorners(中文名:圆角)
   调用方法非常简单,首先我们要去官网下载这个插件
        官网下载地址:  http://curvycorners.googlecode.com/files/curvycorners-2.1.zip
   它的应用场景是这样的,假设我们现在有一个长方形的DIV,那么我们只要引入curvycorners.js,
like this :
      <script type=”text/JavaScript” src=”../curvycorners.src.js”></script>
      <script type=”text/JavaScript”>
            curvyCorners.addEvent(window, ‘load’, initCorners);  //触发事件,调用initCorners方法
            function initCorners() {
                var settings = {              //圆角设置
                    tl: { radius: 20 },       //左上圆角半径
                    tr: { radius: 20 },       //右上圆角半径
                    bl: { radius: 20 },       //左下圆角半径
                    br: { radius: 20 },       //右下圆角半径
                    antiAlias: true           //圆角部分的状态 true:完美圆角 false:失真圆角
                 }
              curvyCorners(settings, “#myBox”); //操作对象为id=”myBox”的DIV
      </script>
        基本的调用就是这样,下面我们说一下多种调用方式
           我们可以使用
              var divObj = document.getElementByIdx_x(“myDiv”);
   curvyCorners(settings, divObj);
           或者直接
               curvyCorners(settings, ‘#myDiv’);   
          如果是class=”myDiv”,我们可以这样调用      
               curvyCorners(settings, ‘.myDiv’);
           这样我们就可以将圆角应用在多个地方,另外还有一种方法:
               curvyCorners(settings,#myDiv1,.cl1,.cl2,.cl3);
       然后,我们发现这一句是在加载方法
               curvyCorners.addEvent(window, ‘load’, initCorners);
       同样,我们也可以使用jQuery代替它,使DOM树加载完之后就出现效果,而不是window.onload
               $(document).ready(function(){
                   initCorners();
                })  //注意不要忘了引入jQuery.js
     这个js插件确实不错,连背景图也能生成圆角,
             curvyCorners详解【一款兼容任何浏览器的生成圆角的js插件】
Posted in 网络转载 | Leave a comment