如何在给定前端代码的URL的#due_date后拼接常量
实现步骤
你需要根据常量所在的运行环境选择对应的拼接方式:
1. 常量为服务器端(ERB/Ruby环境)定义
当前URL是通过ERB模板标签<%= %>输出的,直接在ERB的字符串逻辑中拼接即可,示例修改如下:
<a href="javascript:void(0);" class="onboard_help_anchor" onclick="openHelpWindow(<%= "'https://helpdesk.orangescrum.com/cloud/create-quick-task/#due_date#{你的常量名}'" %>)" title="<?php echo __("Get quick help on Due Date");?>" rel="tooltip"><i class="material-icons"></i></a>
如果不习惯Ruby字符串插值,也可以用加号拼接:
<%= '\'https://helpdesk.orangescrum.com/cloud/create-quick-task/#due_date' + 你的常量名 + '\'' %>
2. 常量为前端JavaScript环境定义
如果常量是在页面JS中声明的,需要把拼接逻辑放到JS执行代码中,修改示例如下:
<a href="javascript:void(0);" class="onboard_help_anchor" onclick="openHelpWindow('<%= 'https://helpdesk.orangescrum.com/cloud/create-quick-task/#due_date' %>' + 你的JS常量名)" title="<?php echo __("Get quick help on Due Date");?>" rel="tooltip"><i class="material-icons"></i></a>
注意事项
- 拼接前建议对常量内容做URL编码,避免特殊字符破坏URL结构:
- Ruby端用
URI.encode(常量名)处理 - JS端用
encodeURIComponent(常量名)处理
- Ruby端用
- 如果常量包含单引号
',需要提前转义,避免JS语法报错。
内容的提问来源于stack exchange,提问作者Swetalina Mishra
相关产品推荐
相关产品推荐

