javascript - 检索字段时出错,javascript minifier 错误

标签 javascript java jsp liferay syntax-error

我知道这个问题现在可能有很多重复,但我在处理我的 liferay 项目时遇到了这个问题......

我通过这样做将检索到的数据库字段放入我的 jsp 中,,

<portlet:resourceURL  var="imageResourceURL1">
<portlet:param name="image" value="nbi"/>
</portlet:resourceURL>

<script type="text/javascript">
    function checkUploads(){
        <% 
            Blob nbi=null, omb=null, san=null, cs=null, birthCert=null, affid=null, waiver=null;
            try{

                attachments a = attachmentsLocalServiceUtil.getAttachmentsByUserId();

                nbi = a.getNbi_clearance();
                omb = a.getOmbudsman_clearance();
                san = a.getSandiganbayan_clearance();
                cs = a.getCivil_service_clearance();
                birthCert = a.getBirthcertificate();
                affid = a.getAffidavit_of_no_relation();
                waiver = a.getAuth_waiver();

                out.println(nbi);
                out.println(omb);
                out.println(san);
                out.println(cs);
                out.println(birthCert);
                out.println(affid);
                out.println(waiver);

            }catch(Exception e){
                out.println(e);
            }
        %>

        /* check nbi */  
        if(nbi == null || nbi == ""){
            $(".nbiUpload").empty().append(
            '<input type="file" accept="image/*" name="<portlet:namespace />nbiFile" id="nbi" style="display:none" />'
            +'<input type="text" id="nbiFilename" />'
            +'<button type="submit" id="nbiBrowse" onclick="$("#nbi").click()">Browse</button>'
            +'<button type="button" id="nbiUpload" name="<portlet:namespace />nbisubmit">Upload</button>'
            +'<script type="text/javascript">'
                +'$("#nbi").change(function(e) {'
                    +'$("#nbiFilename").val(this.files[0].name);'
                +'});'
                +'$("#nbiUpload").click(function(event){'
                    +'event.preventDefault();'
                +'});'
                +'$("#nbiBrowse").click(function(event){'
                    +'event.preventDefault();'
                +'});'
            +'< /script>');
        }else{
            $(".nbiUpload").empty().append(
            '<a id="nbiclearance" href='<%=imageResourceURL1.toString()%>' rel="lightbox" style="cursor:pointer">'
            +'<img src='<%=imageResourceURL1.toString()%>' alt="no Image" id="img_nbi_clearance" style="height:100px;width:130px;cursor:pointer;" border="0"></a>');
        }
    }
</script>

我无法理解的是错误,我收到了诸如此类的错误,,

18:28:13,916 ERROR [http-bio-8080-exec-160][MinifierUtil:111] 3: 38: missing ; before statement
18:28:13,917 ERROR [http-bio-8080-exec-160][MinifierUtil:111] 7: 33: missing ; before statement
18:28:13,918 ERROR [http-bio-8080-exec-160][MinifierUtil:111] 24: 10: syntax error
18:28:13,918 ERROR [http-bio-8080-exec-160][MinifierUtil:111] 26: 39: missing ) after argument list

也许我只是语法错误,所以请帮助我..:)

最佳答案

在不给出问题的确切位置的情况下(当人们所能做的就是读取一些生成输出的代码时,这很困难),我希望您自己调试它:您的问题似乎与 Minifier 相关 -该组件删除多余的空格和换行符并假设您的脚本代码有效。解决这个问题的一个好技巧是删除 <script>暂时标记。将其替换为 (script)(/script) ,打开页面,搜索这个临时内容,压缩器不会碰它。但现在您可以看到 HTML 文档中到底呈现了什么。

典型问题是:您应该考虑转义输出的各种值:数据库中的文件名或其他数据可能包含空格、引号或其他特殊字符,这些字符会扰乱您的输出并在意外的位置终止字符串。

另一个选项是:添加 ?strip=0到 URL - 这应该禁用 Liferay 的 JS 压缩器。您仍然会遇到无效的 JS 代码,但现在浏览器的开发人员工具可以直接将您指向有问题的地方。

关于javascript - 检索字段时出错,javascript minifier 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32323914/

相关文章:

javascript - jQuery keyup - 第二个输入不可见

javascript - jquery ui 自动完成 : navigating json objects

javascript - 使用 Javascript 访问 GridView 页脚中的标签控件

java - 如何交换两个圆

jsp - 为什么我在 tomcat 中部署我的 java web 项目后显示 404

javascript - 在加载子网格表单时获取父属性

java - 过滤列表的干净方法

java - Jenkins:为不同的 URL 部署不同的 applicationContext

java - 使用表单将值从 JSP 传递到 Servlet

java - jsp:setProperty 请求 HttpServletRequest 处理 JSP 页面/Purchase.jsp 时发生异常