使用Mootools/Javascript解析短代码

使用Mootools/Javascript解析短代码,javascript,mootools,Javascript,Mootools,我需要在CMS文本区域中使用字符串/短代码来定义按钮。。。对于非技术用户来说很简单,例如: [button text=“单击此处”href=”http://www.google.com“] 基于该字符串,我需要在前端使用mootools(或者通常使用javascript)动态创建一个按钮(jquery在我们的环境中不可用)。到目前为止,我还无法从括号开始解析代码,然后获取这些属性以在代码中使用。然后我需要销毁原始的短代码。如果有更好的方法,它不必完全按照我上面的方式设置…任何建议都将不胜感激 谢

我需要在CMS文本区域中使用字符串/短代码来定义按钮。。。对于非技术用户来说很简单,例如:

[button text=“单击此处”href=”http://www.google.com“]

基于该字符串,我需要在前端使用mootools(或者通常使用javascript)动态创建一个按钮(jquery在我们的环境中不可用)。到目前为止,我还无法从括号开始解析代码,然后获取这些属性以在代码中使用。然后我需要销毁原始的短代码。如果有更好的方法,它不必完全按照我上面的方式设置…任何建议都将不胜感激


谢谢

这是我提出的解决方案。。。这有点像黑客,但它奏效了。我正在使用的CMS是基于Coldfusion的,但是该方法应该是可转移的

另一个复杂性:在我们的例子中,我们需要将可编辑按钮显示在与模板的可编辑区域分开的位置。基本上,我们在一个侧边栏中有一个不可编辑的按钮,我们希望可以从主内容区域轻松编辑该按钮。因此,如果用户定义了一个按钮,我们将用用户定义的按钮替换边栏按钮。因此,我有一个额外的步骤,我使用mootools抓取创建的按钮,替换页面侧栏中的按钮,然后销毁原始按钮

用户的目标是在CMS的文本区域的某个地方输入一个短代码,类似于:

[button id="override-button" title="XXX" href="YYY"][/button]
后端会将其转换为DOM元素,前端会使用mootools将按钮定位到需要的位置,然后销毁原始标记

首先,我在DB输出中搜索代码

<cfset find1='\[button'>    <!-- open-->
<cfset find2='\]\[/button]'>    <!-- close -->

就这样。我不知道这对其他人会有多大帮助,但由于朱利安建议我发布我的解决方案,我希望它能帮助其他人!祝你好运

好的,我正要通过执行一些服务器端脚本来解决我的问题,以将短代码样式字符串重新格式化为有效的DOM元素。一旦我把它作为DOM元素,我就使用Mootools来进行操作。这对解决您自己的问题不是很好吗?请随意详细说明您的流程作为答案,并接受它,这样其他人就可以从中受益。
<cfset replace1 = "<button">
<cfset replace2 = "></button>">
<cfset rs.body=#REReplace(rs.body,find1,replace1,"ONE")#>
<cfset rs.body=#REReplace(rs.body,find2,replace2,"ONE")#>
<button id="override-button" title="XXX" href="YYY"></button>
var overrideBtn = $('override-button');
var overrideBtn_title,overrideBtn_href = null;

if (overrideBtn) {
overrideBtn_title = overrideBtn.getProperty('title');
overrideBtn_href = overrideBtn.getProperty('href');

if (overrideBtn_title && overrideBtn_href)
{
    $('open-form-button').set('text', overrideBtn_title);
    $('open-form-button').setProperty('href',overrideBtn_href);
    overrideBtn.dispose();
}
}