繁体   English   中英

在html标签内执行Javascript函数

[英]Executing an Javascript function inside html tags

我有以下代码:

 <h2> <c:out value="${Name}"/> </h2>
 <img id="deleteSpecialCharacters('screenshot0<c:out value="${Name}"/>Preview')" class="screenshotImg" src="#" alt="screenshot"/>

使用javascript函数:

function deleteSpecialCharacters(String) {
        var NewString = String;
        NewString =  NewString.replace(/[^A-Z0-9]+/ig, "_");
        return NewString;
    }

由于Java字符串包含特殊字符,因此我想在ID内使用它们之前对其进行过滤。 但是由于Javascript函数位于ID标记内,因此它将函数视为字符串。

那么我该如何在id内调用javascript函数来过滤Java代码

您不能以这种方式执行JavaScript函数。 您有两种选择:要么使用Java在服务器端进行操作,然后生成id id="${...}"要么在onload事件的客户端进行操作。

您可以尝试在HTML页面加载之前调用js函数。

您可以尝试在正文之后编写JavaScript函数deleteSpecialCharacters

<body>
<script type="text/javascript">
    your js function
</script>

希望这可以帮助!!

<h2> <c:out value="${Name}"/> </h2>
<img class="screenshotImg" src="#" alt="screenshot"/>
<input type="hidden" id="replacement_name" value='screenshot0<c:out value="${Name}"/>Preview'/>

然后读取隐藏字段的值,并将其传递给javascript方法,并将结果值作为id分配给img元素。

<script>
   function deleteSpecialCharacters(String) {
      var NewString = String;
      NewString =  NewString.replace(/[^A-Z0-9]+/ig, "_");
      return NewString;
    }
   $(document).ready(function() {
      var cleanStr = deleteSpecialCharacters($('#replacement_name').val());
      $('.screenshotImg').attr('id', cleanStr);
   });
</script>

仅当您确定该类只有一个img元素时,此方法才有效。

更好的解决方案是从服务器本身传递实际值和清除值,或者查看此线程正则表达式以删除JSTL标记中的特殊字符

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM