欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Javascript實(shí)例教程(19) 使用HoTMetal(4)

 更新時(shí)間:2006年12月23日 00:00:00   作者:  
HoTMetal中使用javascript

4. 怎樣編寫(xiě)文檔格式的腳本

下面舉個(gè)宏的例子:根據(jù)預(yù)定義的頁(yè)面的布置準(zhǔn)則來(lái)格式化文檔。為了觀察這個(gè)宏的效應(yīng),請(qǐng)關(guān)閉Enable Source Layout(允許源程序布局)按鈕,具體從菜單中選擇Tools(工具)->Customization(定制)。我們首先打開(kāi)應(yīng)用程序來(lái)初始化一些全局的變量。另外宏的名字必須為n_Application_Open,具體的代碼如下:

<MACRO name="On_Application_Open" lang="JScript"><![CDATA[

var viewWYSIWYG = 0;

var viewTagsOn = 1;

var viewSource = 2;

]]></MACRO>

這個(gè)宏必須在打開(kāi)HoTMetaL應(yīng)用程序的時(shí)候才被調(diào)用。它唯一的目的就是定義三個(gè)常數(shù),這些常數(shù)用于其它的宏。這些常數(shù)只是代表了三個(gè)相應(yīng)的HoTMetaL視圖。操作HoTMetaL的編輯窗口的左邊按鈕邊角上的窗口標(biāo)簽,你可以看到WYSIWYG(即所見(jiàn)即所得)視圖,TagsOn視圖和源程序視圖。

下面得宏是檢查當(dāng)前視圖是否是源視圖并且根據(jù)預(yù)定義的準(zhǔn)則格式化整個(gè)文檔。如果視覺(jué)圖不是源視圖,一個(gè)消息就會(huì)打印出來(lái)顯示給用戶,并且告訴用戶切換視圖,代碼如下:

<MACRO name="Format Current Document" lang="JScript" id="153" desc="Apply source layout to entire document">

<![CDATA[

if (ActiveDocument.ViewType == viewSource) {

ActiveDocument.Layout();

}

else {

Application.Alert("Applying source layout only works in source view.\nSwitch to source view and try again.");

}

]]></MACRO>

這里要注意,我們?cè)谶@里已經(jīng)使用了兩個(gè)HotMetaL的對(duì)象:ActiveDocument 和 Application。這個(gè)Layout()方法格式化了當(dāng)前文檔。而Alert()方法彈出了一個(gè)警告方框。
好吧,現(xiàn)在讓我們來(lái)測(cè)試一下這個(gè)宏。請(qǐng)?jiān)贖otTMetaL中打開(kāi)一個(gè)文檔并將視圖切換到源程序視圖。你可以在ProgGuide目錄中選擇其中一段。并且通過(guò)使用Tools(工具)->Customization(定制)關(guān)閉Enable Source Layout按鈕。接著將其中一行用加入空格往右移,再?gòu)墓ぞ卟藛沃姓{(diào)用宏對(duì)話框。這時(shí)會(huì)展現(xiàn)出定義在HotMetaL.mcr文件的宏的列表。然后運(yùn)行Refresh Macros宏來(lái)裝載你剛才編輯的新的宏。你將會(huì)看到Format Current Document (格式當(dāng)前文檔)宏。你可以運(yùn)行它并且注意那個(gè)縮進(jìn)的行回到它的原位置。接下來(lái)我們測(cè)試一下Alert()方法?,F(xiàn)在將視圖切換到TagsOn視圖并再次運(yùn)行宏,會(huì)彈出如圖1的對(duì)話框:



(圖1)

現(xiàn)在假設(shè)你想格式化文檔中所選擇的部分。這個(gè)請(qǐng)求的宏(稱為Format Current Selection)跟上面所述的宏(Format Current Document)很類似。它們之間的不同只是在:Format Current Document中 Layout()方法是操作ActiveDocument 對(duì)象,而Format Current Selection中 Layout()方法是操作Selection對(duì)象:

<MACRO name="Format Current Selection" lang="JScript" id="53" desc="Apply source layout to the current selection">

<![CDATA[

if (ActiveDocument.ViewType == viewSource) {

Selection.Layout();

} else{

Application.Alert("Applying source layout only works in source view.\nSwitch to source view and try again.");

}

]]></MACRO>
下面讓我們好好看看上面這個(gè)宏是如何工作的。我們?cè)诖蜷_(kāi)的文檔中縮進(jìn)了兩行。第一行是以”does not specify”開(kāi)頭的,而另外一句是以"referred to in this ma:"開(kāi)頭的。如圖2所示:



(圖2)

現(xiàn)在我們選擇三行,這三行包括了以"does not specify:"開(kāi)頭的行,如圖3所示:



(圖3)

最后我們點(diǎn)擊中在窗口左上角上的綠色箭頭,接著宏的名字(Format Current Selection)就顯示在下拉菜單的窗口中,如圖4所示:



(圖4)

值得一提的是,被選擇的行已經(jīng)被格式化為原來(lái)的段落邊界。以"referred to in this ma"為開(kāi)頭的第二行保持縮進(jìn)狀態(tài)而沒(méi)有被格式化。

相關(guān)文章

最新評(píng)論