深入DW插件的奥秘(6) |
||||||||||||||||
四、 进阶篇 Behaviors插件的编写 1.Behaviors插件的简介 Behaviors与Event(事件)以及Action(行为)是紧密结合的,实际上Behaviors插件的编写就是Action文件的编写,Action文件是.htm文件,存放在/Configuration/Behaviors/Action目录下,其结构可以划分为: 1、<head>里是Javascript代码,用以处理用户输入的参数,并且将生成的代码插入到当前文档 2、<body>里包含form,提供给用户参数输入,定制behaviors的具体细节 2.Behaviors插件的工作原理 Behaviors插件的工作流程大致如下:
3.Behaviors插件制作实例 3.Behaviors插件制作实例 Example 4:制作一个全屏打开网页的Behaviors插件 Ex4.1 先看看效果 Ex4.2 分析源代码,上面的效果的源代码如下: <HTML> <HEAD> <TITLE>Example</TITLE> <script> <!-- function fullwin(targeturl){ window.open(targeturl,"","fullscreen") } //--> </script> </HEAD> <BODY BGCOLOR="#FFFFFF"> <a href="#" onClick="fullwin('http://www.sina.com.cn')">打开全屏窗口</a> </BODY> </HTML> 代码中,有一个fullwin()函数,以及"打开全屏窗口"链接有一个onClick事件; 我们要完成的任务是:制作一个可以给任何链接赋予一个全屏打开的Action,具体的步骤就是,当用户选择一个链接时,在Action浮动面板上可以直接调用本插件,首先,必须插入一个fullwin()函数,其次,要给选中的链接加上一个onClick事件 Ex4.3 开始行动 Ex4.3 开始行动! 首先,编写Open Full Window.htm文件 需要传递一个地址参数,所以需要一个文件浏览框,具体代码如下: <HTML> <HEAD> <SCRIPT LANGUAGE="JavaScript" SRC="Open%20Full%20Window.js"></SCRIPT> <SCRIPT LANGUAGE="javascript"> var URl_NoMsg = "请输入网页地址,或者点击取消按钮."; var URl_BadBraces = "该地址不合法,不能为空值."; </SCRIPT> <TITLE>Open Full Window</TITLE> <META HTTP-EQUIV="Content-Type" CONTENT="text/html"> </HEAD> <BODY onload="initializeUI()"> <FORM NAME="theForm"> <DIV ALIGN="center"> <TABLE BORDER=0 width="350"> <TR> <TD>网页地址:</TD> <TD ALIGN="left" VALIGN="top"> <INPUT TYPE="text" NAME="URL" STYLE="width:180px"> <!--注释:下面一个输入框就是文本浏览框--> <INPUT TYPE="button" VALUE="Browse..." onClick="browseFile(document.theForm.URL)"> </TR> </TABLE> </DIV> </FORM> </BODY> </HTML> 编写Open Full Window.js文件 接着,编写Open Full Window.js文件 具体代码如下: //注释:打开全屏窗口的函数 function fullwin(targeturl){ window.open(targeturl,"","fullscreen") } //注释:定义可以接受的事件 function canAcceptBehavior(){ var retVal = "onClick,onMouseOver,(onClick)"; return retVal; } //注释:行为函数 function behaviorFunction(){ return "fullwin"; } //注释:在特定的Tag里添加行为函数 function applyBehavior() { var msgStr="",retVal; msgStr = dw.doURLEncoding(document.theForm.URL.value); if (msgStr == null) retVal = URl_BadBraces; else if (msgStr) retVal = "fullwin('"+msgStr+"')"; else retVal = URl_NoMsg; return retVal } //注释:监视行为参数,通过他,用户可以重新修改行为参数 function inspectBehavior(enteredStr){ var argArray = extractArgs(enteredStr); document.theForm.URL.value = unescape(argArray[1]); } //注释:初始化插件的参数面板 function initializeUI(){ document.theForm.URL.focus(); document.theForm.URL.select(); } 4.Behaviors插件的编写注意事项 4.Behaviors插件的编写注意事项 applyBehavior()和behaviorFunction()两个函数是必不可少的; 5.Behaviors常用函数列表 canAcceptBehavior()//注释:定义可以接受的事件 applyBehavior()//注释:对选择的Tag赋予事件 behaviorFunction()//注释:定义事件函数 inspectBehavior()//注释:监视行为参数,通过他,用户可以重新修改行为参数 identifyBehaviorArguments()//注释:验证参数的合法性 initializeUI()//注释:初始化参数输入界面 windowDimensions()//注释:定义参数对话框的尺寸 插件的封装 |