第四十八章 开发自定义标签 - 在action中使用csr标签

发布于:2022-11-16 ⋅ 阅读:(15) ⋅ 点赞:(0) ⋅ 评论:(0)

第四十八章 开发自定义标签 - 在action中使用csr标签

action中使用<csr>标签

在规则的操作定义中,可以使用一些附加标记。
本节描述:

  • <csr:default> Tag
  • <csr:children> Tag
  • <csr:section> Tag

<csr:default> Tag

<csr:default>标记直接呈现与该规则相关的标记的内容。
例如,下面的规则写出<ECHO>标签和它可能拥有的任何属性和/或子标签:

<csr:rule name="ECHO" match="ECHO" >
<csr:action>
<csr:default>
</csr:action>
</csr:rule>

该标记主要用于想要更改标记的某些方面,但又不想在其他方面干扰它的情况。
例如,如果想让CSP页面上的所有表都有红色背景,为<table>标签定义一个规则:

<csr:rule name="REDTABLE" match="TABLE" >
<csr:action>
<script language="Cache" runat="COMPILER">
    // set the bgcolor attribute for this element
    Do ##this.SetAttribute("BGCOLOR","red")
</script>
<csr:default>
</csr:action>
</csr:rule>

当触发该规则时,它将任何<TABLE>标记的BGCOLOR属性的值更改为红色(使用编译时脚本),然后在其他方面呈现表标记(及其子标记)不变。

<csr:children> Tag

<csr:children>标记会写出标记可能具有的所有子标记。
它不同于<csr:default>标记,因为它不呈现与此规则相关的标记。
当希望完全控制外部标记的呈现方式,但不想担心子标记的呈现方式时,可以使用此标记。

<csr:section> Tag

<csr:section>标记指定了在结果HTML页面中呈现内容的特定位置。
默认情况下,操作将在运行时HTML页面中的位置写入文本,该位置相当于CSP文档中规则标记的位置。
<csr:section>标记允许更改这一点。
例如:想要定义一个规则,在HTML页面的主体中创建一个按钮,并在页面的头部部分创建一些相应的JavaScript
可以用下面的规则来实现:

<csr:rule name="MYBUTTON" match="FORM/*/MYBUTTON" empty>
<csr:action>
<csr:section NAME=HEAD>
<script language="JavaScript">
function MyButton()
{
 alert('MyButton pressed!');
 return true;
}
</script>
</csr:section>

<input type="button" value='##(##this.GetAttribute("VALUE"))##'
onclick="MyButton();"></input>
</csr:action>
</csr:rule>