javascript - 从 JavaScript 函数获取返回 URL 并将其作为参数发送到操作
问题描述
我有一个 JavaScript 文件:informacoesImportantes.js
其中有一个函数可以生成 Whatsapp 的目标 URL。
您需要获取 URL 并将其作为参数传递给qrCode.do
操作,但显然它qrCode
甚至在生成链接之前就调用了,因为它总是为空,但是当您打开浏览器控制台并打印变量时,链接就在那里。
我正在尝试向 发送参数Action
,但该参数来自 JavaScript 函数。我尝试了几种方法,<c:set>
甚至直接:javascript
在参数后面直接调用src
,但没有成功。
informacoesImportantes.js
:
function gerarUrlWhatsapp(especialidade,data,hora,medico,unidadeMedica,enderecoCompleto) {
var texto = "Seguem dados de confirma\u00e7\u00e3o do agendamento: "+"\n"+
" Especialidade: "+especialidade+"\n"+
" Data: "+data+"\n"+
" Hora: "+hora+"\n"+
" M\u00e9dico: "+medico+"\n"+
" Unidade "+unidadeMedica+"\n"+
" Endere\u00e7o: "+enderecoCompleto + "\n"+
" Informa\u00e7\u00f5es importantes:" + "\n";
return "https://wa.me/?text=" + texto;
}
agendamentoDetalhe.jsp
:
<div class="col-sm-3 gnm-container-qrcode">
<script>
var urlWhats = gerarUrlWhatsapp('${ agendamento.especialidade.dsEspecialidade}','${dateParts[0]}','${dateParts[1]}','${agendamento.nomePrestador}','${agendamento.unidadeMedica.nome}','${agendamento.unidadeMedica.enderecoCompleto}');
</script>
<c:set var="qrCodeUrlWhatsapp" value="${urlWhats}" />
<img src="../qrCode.do?qrCodeUrlWhatsapp=javascript:gerarUrlWhatsapp('${ agendamento.especialidade.dsEspecialidade}','${dateParts[0]}','${dateParts[1]}','${agendamento.nomePrestador}','${agendamento.unidadeMedica.nome}','${agendamento.unidadeMedica.enderecoCompleto}');"/>
<p>${urlWhats}</p>
</div>
struts.xml
:
<action name="qrCode" class="**" method="qrCode">
<result name="success" type="stream">
<param name="contentType">image/jpeg</param>
<param name="inputName">qrCodeImage</param>
<param name="bufferSize">4096</param>
</result>
</action>
AgendamentoAction.java
:
public String qrCode() {
qrCodeImage = generateQrCodeImpl.createQrCode(accessToken, qrCodeUrlWhatsapp);
}
解决方案
您不能在<img src=
. 但是你可以修改src
属性的值。如果id
向标签添加属性,<img>
则可以在调用自定义函数后从document
using JavaScript 和 modify属性中获取此元素。src
下面的脚本应该在 JSP 文件中,因此在呈现文档之前已经评估了 EL 表达式。
<img id="qrCodeId" src="#">
<script>
var urlWhats = gerarUrlWhatsapp('${ agendamento.especialidade.dsEspecialidade}','${dateParts[0]}','${dateParts[1]}','${agendamento.nomePrestador}','${agendamento.unidadeMedica.nome}','${agendamento.unidadeMedica.enderecoCompleto}');
document.getElementById("qrCodeId").src="../qrCode.do?qrCodeUrlWhatsapp="+encodeURIComponent(urlWhats);
</script>
推荐阅读
- tensorflow - 使用 tf.train.adamoptimizer 时如何跟踪权重
- javascript - 使用印度编号系统显示价格
- java - 使用 org.hibernate.validator.internal.cfg.context 在方法上创建约束
- typescript - 打字稿没有重载匹配此调用 onmouseover 事件
- javascript - 如何使用 Bootstrap 4 链接到关闭选项卡内的锚点?
- java - 当我重写 html 文件时,本地化文本会自动更改
- r - 在 R 中一次抓取多个域
- excel - VBA 条件格式取决于度量类型
- asp.net - 没有“IEnumerable”类型的 ViewData 项
' 有键 'ddlcontent' - android - 使用 Kotlin,您可以将 Google 存储 URL (GS://) 转换为 HTTPS 吗?