如何在Bootbox对话框中添加可正常工作的Href链接?
解决Bootbox对话框中Href链接失效的问题
你的问题主要出在HTML属性引号缺失和JS与PHP变量拼接时的字符串格式混乱上,我来帮你一步步修正:
问题分析
原代码里的<a>标签href属性没有用引号包裹,浏览器无法正确解析完整URL;同时JS字符串和PHP变量拼接时,引号嵌套逻辑出错,直接破坏了链接的结构。
修正后的代码
推荐用ES6模板字符串(反引号`)来拼接内容,代码可读性更高,还能避免引号冲突:
bootbox.dialog({ message: `Message has been generated.<br> <a href="${'<?php echo $site_url;?>'}/force_download.php?file_name=../folder_path/${msg_split[1]}.pdf">Click Here to download label</a> <br><b>Currently generated Label is - <font color=red>${msg_split[1]}</font></b>`, title: 'Response', buttons: { warning: { label: "Ok", className: "btn-success", callback: function() { flushWarehouseInformation(); } } } });
如果你的环境不支持ES6,也可以用传统字符串拼接方式,核心是给href加上双引号:
bootbox.dialog({ message: 'Message has been generated.<br>' + '<a href="<?php echo $site_url;?>/force_download.php?file_name=../folder_path/'+msg_split[1]+'.pdf">Click Here to download label</a>' + '<br><b>Currently generated Label is - <font color=red>'+msg_split[1]+'</font></b>', title: 'Response', buttons: { warning: { label: "Ok", className: "btn-success", callback: function() { flushWarehouseInformation(); } } } });
关键修改点
- 给
<a>标签的href属性添加双引号,确保浏览器能正确识别完整URL地址。 - 用模板字符串(或规范的字符串拼接)整合PHP变量与JS变量,避免引号嵌套错误。
- 顺带修正了拼写错误:把原代码里的
Lable改成了正确的Label(非必须,但建议修正)。
这样调整后,你的下载链接应该就能正常工作了。
内容的提问来源于stack exchange,提问作者Venkat Naidu
相关产品推荐
相关产品推荐

