隨筆:19 文章:2 評論:6 引用:0
          BlogJava 首頁 發新隨筆
          發新文章 聯系 聚合管理

          2006年6月6日

          我個人憑借自己的眼光和技術,創作了一個有潛在商業價值的網站,中國IDC資源導航,當然名稱雖然是導
          航,但我的想法是作成國內IDC行業的資源整合,主要內容包括IDC導航站、商務站、資訊站、論壇四個版
          塊。

          導航站:是收集互聯網資源,為客戶導航;
          商務站:是整合國內現有運營商,讓運營商在此建立自己的信息平臺。目標是形成國際IDC商務站;
          資訊站:是國內外有關IDC的新聞資訊、技術信息;

          我現在是一個人在作,目前版本是1。0只有導航站。2。0正在全面開發之中,增加商務站。生成Html頁,利
          于搜索引擎的收錄。目前使用技術是asp+sql2000,但準備在4。0時有可能全面改版,使用技術Jsp+MySql。

          目前的問題,個人精力有限,開發速度慢,思維有限,希望業界精英提供好的建議,歡迎懂技術的精英加
          入。現在純屬開發階段,但可以承諾,如果項目有發展,可以分得相應股份。

          QQ:316156915
          Msn:yan65919@hotmail.com
          E-mail:yan65919@gmail.com

          目前可以看到的痕跡:www.idcdh.com
          posted @ 2006-10-24 11:33 yanzhicun 閱讀(404) | 評論 (1)編輯 收藏
           
          今天“百年不遇”的停電了,看了一天書。晚上搞了一下全文索引,決定把心得貼出來,我盡量寫的詳細,大家共同學習,歡迎指正!
            
            1、啟動 Microsoft Search 服務
            
              開疾說?->SQL程序組-->服務管理器-->下拉筐-->Microsoft Search 服務-->啟動它
            
            2、
             ..\Microsoft SQL Server\MSSQL\FTDATA\SQLServer\Config\目錄里建一個非空noise.chs文件
             非空noise.chs文件,也有人說是空的noise.chs文件,但我每次都往里寫幾個沒用的字母。
            
            3、建立環境
            
              打開查詢分析器-->執行下列腳本:
            --------------------------------------------
            create database test ---創建test數據庫
            use test       ---選擇test數據庫
            create table dali (ID int not null primary key,MyImage image,FileType varchar(255),FileNmae varchar(255)) ---創建dali表
            --dali表中 Id,MyImage,FileType 三列是必須的,因為要對image列索引的話,必須要有一個主鍵列,一個image列,一個存放文件類型的列
            --我們知道在windows系統中文件類型是靠擴展名來區分的所以FileType列也就是用來放 文件的擴展名
            --------------------------------------------
            
            sp_fulltext_database 'enable' --為全文索引啟用數據庫
            sp_fulltext_catalog 'My_FullDir', 'create' ---創建一個叫My_FullDif的全文目錄
            
            declare @Key sysname ; select @Key=c.name from syscolumns a,sysconstraints b,sysobjects c where a.id=object_id('a') and a.name='a' and a.id=b.id and b.constid=c.id and c.name like 'PK%'
            exec sp_fulltext_table 'dali','create','My_FullDir',@Key ----這兩句是為全文索引,對表進行標記
            
            sp_fulltext_column 'dali','MyImage','add',0x0804,'FileType' ---這句是指定MyImage列為全文索引列,FileType是類型列
            ------------------------------------------------
            4、在c盤下放一個擴展名為doc的word文件,一個擴展名為xls的excel文件,一個擴展名為htm的網頁文件,個擴展名為bmp的圖片共4個,大家可根據實際情況放入!
            
            5、插入數據
            
             建立下面這個存儲過程
            --------------------------------------------------
            CREATE PROCEDURE sp_textcopy
             @srvname  varchar (30),
             @login   varchar (30),
             @password  varchar (30),
             @dbname   varchar (30),
             @tbname   varchar (30),
             @colname  varchar (30),
             @filename  varchar (30),
             @whereclause varchar (40),
             @direction char(1)
            AS
            /* 這是使用textcopy工具將文件插入到數據庫中,如果有前臺工具可以用前臺開發工具將文件插入,這里為了演示 */
            DECLARE @exec_str varchar (255)
            SELECT @exec_str='textcopy /S ' @srvname ' /U ' @login ' /P ' @password ' /D ' @dbname ' /T' @tbname ' /C ' @colname ' /W"' @whereclause '" /F"' @filename '" /' @direction
            EXEC master..xp_cmdshell @exec_str
            ----------------------------------------------------
            
            insert dali values(1,0x,'doc','大力的doc') ---其中第二列是 0x 它是一個16進制數對應image列,是必須的,不要寫null,第三列是文件類型,既擴展名
            
            sp_textcopy '你的服務器名','sa','你的密碼','test','dali','MyImage','c:\大力的doc.doc','where ID=1','I'
            -------依次參數是:實例名,用戶名,密碼,數據庫名,表名,image列名,路徑及文件名,條件(你必須保證它只選擇一行),I
            ---------------------------------------------------------------------------------------------------------------------
            insert dali values(2,0x,'bmp','圖片')
            sp_textcopy '你的服務器名','sa','你的密碼','test','dali','MyImage','c:\圖片.bmp','where ID=2','I' --注意條件是 ID=2
            
            insert dali values(3,0x,'xls','Excel文件')
            sp_textcopy '你的服務器名','sa','你的密碼','test','dali','MyImage','c:\Excel文件.xls','where ID=3','I' --注意條件是 ID=3
            
            insert dali values(4,0x,'htm','網頁')
            sp_textcopy '你的服務器名','sa','你的密碼','test','dali','MyImage','c:\網頁.htm','where ID=4','I' --注意條件是 ID=4
            
            ----------上面的語句,要保證類型一樣,路徑正確,條件唯一正確應該就可以了
            
            6、填充全文索引
            
            sp_fulltext_table 'dali','start_full' ---第一個參數是表名,第二個參數是啟動表的全文索引的完全填充
            
            7、可以開始你的實驗了
            
            select * from dali where contains(MyImage,'J老師')
            
            select * from dali where contains(MyImage,'海老師')
            
            ------END----------
            --調試環境:SQLServer2K、Windows2Kas
          posted @ 2006-07-12 12:00 yanzhicun 閱讀(620) | 評論 (0)編輯 收藏
           

          在SQL 企業管理器上操作步驟:

          一:進入企業管理器,打開支持服務,選取全文檢索,點擊啟動。

           

          二:對相關的數據表建立全文索引。

          三:全文索引建立向導

           

           

           

          然后確定提交后,建立向導就基本完成。

          到這里在SQL上建立全文索引已經完成!

          四:補充:由于全文填充是按照調度里設定周期進行的,所以不會馬上生效,如果需要的話可以點擊全目錄,運行填充。通常數據量大的話不建議在訪問量大的時候進行。

           

          解決在全文搜索中搜索中文字符出錯補丁:點擊下載

          解決中文字符出錯問題:

          方法一:
          把下載解壓的文件復制到...\Microsoft SQL Server\MSSQL\FTDATA\SQLServer\Config\
          目錄下(該路徑為全文目錄路徑,可以全文目錄屬性中查看)

          方法二:
          編輯...\Microsoft SQL Server\MSSQL\FTDATA\SQLServer\Config\目錄下的
          noise.chs文件,清空文檔,輸入‘@’(其他的偏僻符號也可以)


          最后,重新進行全文完全填充!

          posted @ 2006-07-12 11:44 yanzhicun 閱讀(373) | 評論 (0)編輯 收藏
           

          引言

          微軟的SQL Server數據庫是一個在中低端企業應用中占有廣泛市場的關系型數據庫系統,它以簡單、方便、易用等特性深得眾多軟件開發人員和數據庫管理人員的鐘愛。但SQL Server 7.0以前的數據庫系統由于沒有全文檢索功能,致使無法提供像文本內容查找此類的服務,成為一個小小的遺憾。從SQL Server 7.0起,到如今的SQL Server 2000終于具備了全文檢索功能,使用戶可以高效地檢索存儲在數據庫char、varchar、text、ntext、nchar、nvarchar等數據類型列中的文本數據。

          建立全文索引

          在進行全文檢索之前,必須先建立和填充數據庫全文索引。為了支持全文索引操作,SQL Server 7.0新增了一些存儲過程和Transact-SQL語句。使用這些存儲過程創建全文索引的具體步驟如下(括號內為調用的存儲過程名稱):

          1. 啟動數據庫的全文處理功能(sp_fulltext_

          database);;

          2. 建立全文檢索目錄(sp_fulltext_catalog);

          3.在全文檢索目錄中注冊需要全文索引的表(sp_fulltext_table);

          4. 指出表中需要全文檢索的列名(sp_fulltext_

          column);;

          5. 為表創建全文索引(sp_fulltext_table);;

          6. 填充全文檢索目錄(sp_fulltext_catalog)。

          下面舉例說明如何創建全文索引,在本例中,對Test數據庫Book表中Title列和Notes列建立全文索引。

          use test //打開數據庫

          //打開全文索引支持,啟動SQL Server的全文搜索服務

          execute sp_fulltext_database ‘enable’

          //建立全文檢索目錄ft_test

          execute sp_fulltext_catalog ‘ft_test’, ‘create’

          為Title列建立全文索引數據元,pk_title為Book表中由主鍵所建立的唯一索引,這個參數是必需的。

          execute sp_fulltext_table ‘book’,‘create’, ‘ft_test’,‘pk_title’

          //設置全文索引列名

          execute sp_fulltext_column ‘book’, ‘title’, ‘add’

          execute sp_fulltext_column ‘book’,‘notes’, ‘add’

          //建立全文索引

          execute sp_fulltext_table ‘book’, ‘activate’

          //填充全文索引目錄

          execute sp_fulltext_catalog ‘ft_test’, ‘start_full’

          至此,全文索引建立完畢。

          進行全文檢索

          SQL Server 2000提供的全文檢索語句主要有CONTAINS和FREETEXT。CONTAINS語句的功能是在表的所有列或指定列中搜索:一個字或短語;一個字或短語的前綴;與一個字相近的另一個字;一個字的派生字;一個重復出現的字。

          CONTAINS語句的語法格式為:

          CONTAINS({column | *}), <contains_search

          _condition>)

          其中,column是搜索列,使用“*”時說明對表中所有全文索引列進行搜索。Contains_search_

          condition 說明CONTAINS語句的搜索內容,其語法格式為:

          {<simple_term>|<prefix_term>|<proximity_term>|<generation_term>|<weighted_term>}[{{AND|AND NOT|OR}<contains_search_condition>}] [...n]

          下面就simple_term和prefix_term參數做簡要說明:

          simple_term是CONTAINS語句所搜索的單字或短語,當搜索的是一個短語時,必須使用雙引號作為定界符。其格式為:

          {‘word’|“ phrase”}

          prefix_term說明CONTAINS語句所搜索的字或短語前綴,其格式為:

          {“word*” | “phrase*”}

          例如,下面語句檢索Book表的Title列和Notes列中包含“database”或“computer”字符串的圖書名稱及其注釋信息:

          select title, notes

          from book

          where contains(tilte, ‘database’) or contains(notes,‘database’)

          or contains(title,‘computer’) or contains(notes,‘computer’)

          FREETEXT語句的功能是在一個表的所有列或指定列中搜索一個自由文本格式的字符串,并返回與該字符串匹配的數據行。所以,FREETEXT語句所執行的功能又稱做自由式全文查詢。

          FREETEXT語句的語法格式為:FREETEXT({column | * },‘freetext_string’)

          其中,column是被搜索列,使用“*”時說明對表中的所有全文索引列進行搜索。Freetext_string參數指出所搜索的自由文本格式字符串。

          例如,下面語句使用FREETEXT語句搜索Book表中包含“Successful Life”字符串的數據行:

          select title, notes

          from book

          where freetext(*,‘Successful Life’)

          posted @ 2006-07-12 11:42 yanzhicun 閱讀(458) | 評論 (0)編輯 收藏
           
          使用SQL?SERVER?2000的全文檢索功能?

           ?
          步驟:

          1、??打開NorthWind數據庫,右鍵Products表,選擇“全文索引表”,“在表上定義全文索引”,為其創建全文目錄。在“全文索引向導”中,選擇你需要全文查詢條件的列(可以是文本或圖像),我們選擇Productname和QuantityPerUnit列。然后下一步,輸入一個新的目錄proCatalog,點擊下一步。在填充調度一項里,我們暫時不建立填充調度。接著“下一步”,全成全文索引向導。完成后,我們可以看到在“全文目錄”里,多了一個全文目錄proCatalog。右鍵proCatalog屬性,可以看到其狀態、表、調度情況。
          2、??右鍵全文目錄proCatalog,?“啟動完全填充”,系統會出現“全文目錄填充成功啟動”。
          3、??這時,我們可以使用Transact-SQL進行全文檢索了,我們使用CONTAINS、FREETEXT等謂詞。如:


          檢索ProductName中,即包含b又包含c的所有列

          SELECT?*

          FROM?Products

          WHERE?CONTAINS(ProductName,?'"c*"?and?"b*"?')

          ?

          檢索ProductName中,即包含chai?chang?tofu之一的所有列

          SELECT?*

          FROM?Products

          WHERE?FREETEXT(ProductName,?'chai?chang?tofu?')

          ?

          我們還可以使用CONTAINSTABLE、FREETEXTTABLE等

          ?

          4、??我們可以用.NET創建WEB或Form客戶端,提供一個良好的全文檢索界面,使自己的應用程序得到擴展

          ?

          ?

          ?

          參考:
          全文查詢有關的系統存儲過程

          (1)啟動數據庫的全文處理功能(sp_fulltext_datebase);?
          (2)建立全文目錄(sp_fulltext_catalog);?
          (3)在全文目錄中注冊需要全文索引的表(sp_fulltext_table);?
          (4)指出表中需要全文檢索的列名(sp_fulltext_column)?
          (5)為表創建全文索引(sp_fulltext_table);?
          (6)填充全文索引(sp_fulltext_catalog)。

          ?

          ?

          ?

          全文查詢支持

          Microsoft&reg;?SQL?Server&#8482;?2000?在接收帶全文構造的?Transact-SQL?語句時,使用全文提供程序從?Microsoft?搜索服務檢索所需信息。全文構造是?CONTAINS?或?FREETEXT?謂詞,或者是?CONTAINSTABLE?或?FREETEXTTABLE?行集函數。如果不知道包含搜索條件的列,全文構造可以在全文索引中引用多列。該進程的流程如下圖所示。

          ?


          這一進程涉及的步驟包括:?

          應用程序給?SQL?Server?實例發送帶全文構造的?Transact-SQL?語句。

          SQL?Server?關系引擎通過查詢系統表驗證全文構造,確定全文索引是否覆蓋列引用。關系引擎將每個?SQL?語句簡化為一系列行集操作,并使用?OLE?DB?將這些操作傳遞給基礎組件,通常是存儲引擎。關系引擎通過全文提供程序而不是存儲引擎,將任何全文構造轉換成對行集的請求。請求的行集是滿足搜索條件和等級的鍵集,而這個等級表示每個鍵的數據滿足搜索條件的程度。向全文提供程序發送的行集請求命令包括全文檢索條件。

          全文提供程序驗證請求并將搜索條件更改為由Microsoft?搜索服務的查詢支持組件使用的形式。將請求發送到搜索服務。

          查詢支持組件使用搜索引擎組件從全文索引析取所請求的數據。然后以行集的形式將這些數據傳遞回全文提供程序。

          全文提供程序將這個行集返回給關系引擎。

          關系引擎將它從存儲引擎和全文提供程序收到的所有行集進行組合,以生成發送回客戶端的最終結果集。?

          ?

          全文目錄和索引

          Microsoft&reg;?SQL?Server&#8482;?2000?全文索引為在字符串數據中進行復雜的詞搜索提供有效支持。全文索引存儲關于重要詞和這些詞在特定列中的位置的信息。全文查詢利用這些信息,可快速搜索包含具體某個詞或一組詞的行。

          全文索引包含在全文目錄中。每個數據庫可以包含一個或多個全文目錄。一個目錄不能屬于多個數據庫,而每個目錄可以包含一個或多個表的全文索引。一個表只能有一個全文索引,因此每個有全文索引的表只屬于一個全文目錄。

          全文目錄和索引不存儲在它們所屬的數據庫中。目錄和索引由?Microsoft?搜索服務分開管理。

          全文索引必須在基表上定義,而不能在視圖、系統表或臨時表上定義。?全文索引的定義包括:?

          能唯一標識表中各行的列(主鍵或候選鍵),而且不允許?NULL?值。

          索引所覆蓋的一個或多個字符串列。?

          全文索引由鍵值填充。每個鍵的項提供與該鍵相關聯的重要詞(干擾詞或終止詞除外)、它們所在的列和它們在列中的位置等有關信息。

          格式化文本字符串(如?Microsoft&reg;?Word&#8482;?文檔文件或?HTML?文件)不能存儲在字符串或?Unicode?列中,因為這些文件中的許多字節包含不構成有效字符的數據結構。數據庫應用程序可能仍需要訪問這些數據并對其應用全文檢索。因為?image?列并不要求每一字節都構成一個有效字符,所以許多站點將這類數據存儲在?image?列中。SQL?Server?2000?引入了對存儲在?image?列中的這些類型的數據執行全文檢索的能力。SQL?Server?2000?提供篩選,可從?Microsoft?Office&#8482;?文件(.doc、.xls?和?.ppt?文件)、文本文件(.txt?文件)及?HTML?文件(.htm?文件)中析取文本化數據。設計表時除包括保存數據的?image?列外,還需包括綁定列來保存存儲在?image?列中的數據格式的文件擴展名。可以創建引用?image?列和綁定列的全文索引,以便在存儲于?image?列中的文本化信息上啟用全文檢索。SQL?Server?2000?全文檢索引擎使用綁定列中的文件擴展名信息,選擇從列中析取文本化數據的合適的篩選。

          全文索引是用于執行兩個?Transact-SQL?謂詞的組件,以便根據全文檢索條件對行進行測試:?

          CONTAINS

          FREETEXT?

          Transact-SQL?還包含兩個返回符合全文檢索條件的行集的函數:?

          CONTAINSTABLE

          FREETEXTTABLE?

          SQL?Server?在內部將搜索條件發送給?Microsoft?搜索服務。Microsoft?搜索服務查找所有符合全文檢索條件的鍵并將它們返回給?SQL?Server。SQL?Server?隨后使用鍵的列表來確定表中要處理的行。

          全文索引

          對?Microsoft&reg;?SQL?Server&#8482;?2000?數據的全文支持涉及兩個功能:對字符數據發出查詢的能力和創建及維護基礎索引以簡化這些查詢的能力。

          全文索引在許多地方與普通的?SQL?索引不同。

          普通?SQL?索引
          ?全文索引
          ?
          存儲時受定義它們所在的數據庫的控制。
          ?存儲在文件系統中,但通過數據庫管理。
          ?
          每個表允許有若干個普通索引。
          ?每個表只允許有一個全文索引。
          ?
          當對作為其基礎的數據進行插入、更新或刪除時,它們自動更新。
          ?將數據添加到全文索引稱為填充,全文索引可通過調度或特定請求來請求,也可以在添加新數據時自動發生。
          ?
          不分組。
          ?在同一個數據庫內分組為一個或多個全文目錄。
          ?
          使用?SQL?Server?企業管理器、向導或?Transact-SQL?語句創建和除去。
          ?使用?SQL?Server?企業管理器、向導或存儲過程創建、管理和除去。
          ?


          ?

          這些差異使大量管理任務變得不可缺少。全文管理是在幾個層次上實施的:?

          服務器?

          可以對服務器范圍的某些屬性(如?resource_usage)加以設置,以便增加或減少全文服務所使用的系統資源數量。


          說明??全文引擎作為名為?Microsoft?搜索的服務在?Microsoft?Windows?NT&reg;?Server?和?Microsoft?Windows&reg;?2000?Server?上運行。對于?Microsoft?SQL?Server?個人版,Microsoft?搜索服務不可用。盡管這意味著?Microsoft?搜索服務既未安裝在?Microsoft?Windows?95/98?上,也未安裝在?Windows?NT?工作站或?Windows?2000?Professional?客戶端上,但這些客戶端在連接到?SQL?Server?標準版安裝或企業版實例時可以使用這項服務。

          數據庫?

          必須啟用數據庫才能使用全文服務。可以在已啟用的數據庫中創建和除去一個或多個全文目錄的元數據。

          全文目錄?

          全文目錄包含數據庫中的全文索引。每個目錄可以用于數據庫內的一個或多個表的索引需求。該目錄中的索引是使用這里介紹的管理功能來填充的。(全文目錄必須駐留在與?SQL?Server?實例相關聯的本地硬盤驅動器上。不支持可移動的驅動器、軟盤和網絡驅動器)。在每個服務器上最多可創建?256?個全文目錄。


          說明??Windows?NT?故障轉移群集環境完全支持全文索引。有關更多信息,請參見在故障轉移群集中運行全文查詢。

          表?

          首先,必須為全文支持啟用表。然后,為與該表相關聯的全文索引創建元數據(如表名及其全文目錄)。表啟用后,可以用為全文支持而啟用的列中的數據填充它。如果表的全文定義被更改(例如,添加一個也將為全文檢索而索引的新列),則必須重新填充相關的全文目錄以使全文索引與新的全文定義同步。

          列?

          可以從非活動的注冊表中添加或除去支持全文查詢的列。

          在所有這些級別上,可使用工具檢索元數據和狀態信息。

          和常規?SQL?索引一樣,當在相關表中修改數據時,可自動更新全文索引。或者,也可以適當的間隔手工重新填充全文索引。這種重寫可能既耗時又大量占用資源,因此,在數據庫活動較少時,這通常是在后臺運行的異步進程。

          應將具有相同更新特性的表(如更改少的與更改多的,或在一天的特定時段內頻繁更改的表)組合在一起,并分配給相同的全文目錄。通過以此方法設置全文目錄填充調度,使得全文索引和表保持同步,且在數據庫活動較多時不對數據庫服務器的資源使用產生負面影響。

          為全文目錄中的表安排全文索引的位置是非常重要的。在為全文目錄指定表時,應該注意下列基本原則:?

          始終選擇可用于全文唯一鍵的最小唯一索引。(4?個字節且基于整數的索引是最佳的。)這將顯著減少文件系統中?Microsoft?搜索服務所需要的資源。如果主鍵很大(超過?100?字節),可以考慮選擇表中其它唯一索引(或創建另一個唯一索引)作為全文唯一鍵。否則,如果全文唯一鍵的大小達到允許的上限(450?字節),全文填充將無法繼續進行。

          如果進行索引的表有成千上萬行,請將該表指定給其自己的全文目錄。

          應該考慮對其進行全文索引的表中發生的更改數以及表的行數。如果要更改的總行數,加上上次全文填充期間表中出現的行數達到成千上萬行,請將該表指定給其自己的全文目錄。?

          請參見

          sp_fulltext_table

          CONTAINS

          一個謂詞,用于搜索包含基于字符的數據類型的列,該列與單個詞和短語,以及與另一個詞一定范圍之內的近似詞精確或模糊(不太精確的)匹配或者加權匹配。CONTAINS?可以搜索:?

          詞或短語。

          詞或短語的前綴。

          另一個詞附近的詞。

          由另一個詞的詞尾變化生成的詞(例如,詞?drive?是?drives、drove、driving?和?driven?詞尾變化的詞干)。

          比另一個詞具有更高加權的詞。?

          語法
          CONTAINS
          ????(?{?column?|?*?}?,?'<?contains_search_condition?>'??????

          ?

          FREETEXT

          是個謂詞,用于搜索含有基于字符的數據類型的列,其中的值符合在搜索條件中所指定文本的含義,但不符合表達方式。使用?FREETEXT?時,全文查詢引擎內部將?freetext_string?拆分為若干個搜索詞,并賦予每個詞以不同的加權,然后查找匹配。

          語法

          FREETEXT?(?{?column?|?*?}?,?'freetext_string'?

          ?

          CONTAINSTABLE?和?FREETEXTTABLE?函數用來指定返回每行的相對排名的全文查詢。這兩個函數與全文謂詞?CONTAINS?和?FREETEXT?很相似,但是用法不同。

          (此文部分資料來自MSDN)
          posted @ 2006-07-12 11:39 yanzhicun 閱讀(564) | 評論 (0)編輯 收藏
           

          JavaScript實際應用:innerHTMl和確認提示的使用

            今天開發中涉及到對一個層的信息控制,就是控制一個層中顯示什么信息,查找資料才知道使用innerHTML屬性來控制層的值,這個innerHTML跟表單里面的value屬性有點類似,能夠控制層的顯示值。

            比如說我一個div層里本來沒有值,我處罰一個事件后要顯示值,那么就能夠使用innerHTML屬性了,其實innerHTML屬性除了能控制層以外,還能控制窗口內容的所有元素,但是我沒有測試過。

          (1)對div標簽的控制

          div標簽跟span標簽是不一樣的,div是一個層的塊,span是一行,我們下面看演示就知道區別了。先來看一段控制div的代碼。

          程序代碼 程序代碼
          <script language="javascript">
          function chageDiv(number)
          {
          if (number == 1) {
          document.getElementById("div1").innerHTML = "值為1";
          }
          if (number == 2) {
          document.getElementById("div1").innerHTML = "值為2";
          }
          }
          </script>

          DIV塊測試:<div id="div1">默認值</div>

          <a href="#" onClick="chageDiv(1)">改變值為1</a>
          <a href="#" onClick="chageDiv(2)">改變值為2</a>


          演示:
          HTML代碼


          [Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運行]


            運行的時候,點擊“改變值為1”那么“默認值”這個內容將會被改變為“值為1”,但是注意其中的界面,就是會發現“DIV測試:”和“默認值”是兩行顯示的,因為DIV是按塊來顯示的。

          (2)對span的控制

          與div類似,但是它是按照行來顯示的,看下面的代碼:
          程序代碼 程序代碼
          <script language="javascript">
          function chageSpan(number)
          {
          if (number == 1) {
          document.getElementById("span1").innerHTML = "值為1";
          }
          if (number == 2) {
          document.getElementById("span1").innerHTML = "值為2";
          }
          }
          </script>
          Span行測試:
          <span id="span1">默認值</span><br>
          <a href="#" onClick="chageSpan(1)">改變值為1</a>
          <a href="#" onClick="chageSpan(2)">改變值為2</a>


          當點擊“改變值為1”的時候,“默認值”將變為“值為1”,但是“Span行測試”和“默認值”是在同一行顯示的,跟DIV不一樣。

          另外一個值得注意的就是,不管是div還是span,后面的名字都是以為id來定義的,不是象表單一樣是使用name來定義的。

          (3)confirm確認提示框的制作

          當我們要執行一個危險操作的時候,比如刪除某個內容等,那么就應該給用戶相應的提示來用戶不容易犯錯誤。一般提示都是使用confirm()函數來處理的,給它提交一個參數作為顯示的信息提示,那么訪問的時候將彈出對話框,如果點擊了“確定”那么將改函數返回true,點擊了“取消”將放回false,我們針對這個特點來使用兩種方法來控制用戶是否執行某個操作。

          看代碼:

          程序代碼 程序代碼
          <script language="javascript">
          function accessNeteasy()
          {
          if(confirm('你真的要訪問網易新聞 ?')) {
          location='http://calendar.eyou.eyou';
          }
          }
          function accessSina()
          {
          if (confirm('你確定要訪問新浪新聞 ?')) {
          return true;
          } else {
          return false;
          }
          }
          </script>

          訪問方式一:
          <a href="#" onClick="accessNeteasy()">網易新聞</a><br>
          訪問方式二:
          <a href="http://news.sina.com.cn" onClick="return accessSina()">新浪新聞</a>


            我們這里建立了兩個函數,一個accessNeteay,一個accessSina,就是訪問網易和新浪,我們使用不同的方法,第一種就是當點了鏈接以后,判斷如果是true的話,那么就location到指定鏈接,這種方法比較不具有通用型,只能針對單個的鏈接。第二種方法是使用返回值的形式,當確定要訪問的時候返回true,不確定的時候返回false,那么這個可以針對任何鏈接來做,寫成一個通用的信息提示,方便頁面中的調用。

          以上代碼都經過測試通過,可以自己再這個基礎上進行擴展,寫出自己需要的JavaScript代碼。
          更多小技巧建議參考藍色理想的鏈接:http://www.blueidea.com/tech/web/2004/2379.asp

          posted @ 2006-06-06 13:03 yanzhicun 閱讀(622) | 評論 (0)編輯 收藏
          CALENDER
          <2006年6月>
          28293031123
          45678910
          11121314151617
          18192021222324
          2526272829301
          2345678

          常用鏈接

          留言簿(1)

          隨筆檔案

          文章檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜


          Powered By: 博客園
          模板提供滬江博客

          主站蜘蛛池模板: 洛浦县| 岑巩县| 洪泽县| 安宁市| 宜章县| 高碑店市| 巴彦淖尔市| 镶黄旗| 淮北市| 榆中县| 秦皇岛市| 井冈山市| 大田县| 宁津县| 扶沟县| 封丘县| 伊春市| 连南| 司法| 宝山区| 壶关县| 收藏| 贵阳市| 慈溪市| 阿合奇县| 盐边县| 临武县| 铁岭县| 昆明市| 张家港市| 明星| 绥江县| 额尔古纳市| 正安县| 治多县| 凌海市| 常宁市| 六盘水市| 涞水县| 九江县| 桓台县|