javascript - Console.log 和 Alert 在 Chrome 中不起作用

标签 javascript java html google-chrome servlets

我在 google chrome 中使用 servlet 工作,我有以下代码:

public void process(String input, PrintWriter out)
  {
        System.out.println(input.indexOf("\\\\"));
        String Json[]= input.split("\\\\");
        for(int x =0; x< Json.length;x++)
        {
            System.out.println(Json.length);
            //JSONProcess(json[x]);
            out.println("<p class=\"json\" style =\"display:none\"> ");
            out.println(Json[x]);
            out.println("</p>");
        }
        out.println("<script>"+
                "var JSONProcess= function(){\n" +
                "var JsonInfo = document.getElementByClassName(\"json\");\n" +
                "var canvasEl = document.getElementById(\"c\");\n" +
                "var nodesData =[];\n"+

                "window.alert(\"This is a test\");\n" +
                "console.log(JsonInfo.length);\n"+
                "for(var i = 0;i<JsonInfo.length; i++)\n" +
                "{\n" +
                "var Json = JsonInfo[x].innerHTML;\n" +
                "if(Json.source == null)\n" +
                "{\n" +
                "nodesData.push([Json.x, Json.y, Json.r, Json.id]);\n" +
                "}\n" +
                "}\n" +
                "for(var i=0; i<nodesData.length; i++)\n" +
                "{\n" +
                "   var data = nodesData[i];\n" +
                "   console.log(data[1]);\n" +
                "   console.log(data[2]);\n" +
                "   console.log(data[3]);\n" +
                "}\n" +
                "}</script>");
  }

虽然脚本标记没有抛出错误,但 console.log 或警报都不起作用。我试过了

delete window.log

这是对这个问题之前提出的问题的回答,但没有任何作用。控制台正在打印日志(我单击了漏斗来检查),并且我已关闭并重新打开 chrome。该问题其他版本中提供的所有答案均无效。

最佳答案

您必须调用该函数

 out.println("<script>"+
    "var JSONProcess= function(){\n" +
    "var JsonInfo = document.getElementByClassName(\"json\");\n" +
    "var canvasEl = document.getElementById(\"c\");\n" +
    "var nodesData =[];\n"+

    "window.alert(\"This is a test\");\n" +
    "console.log(JsonInfo.length);\n"+
    "for(var i = 0;i<JsonInfo.length; i++)\n" +
    "{\n" +
    "var Json = JsonInfo[x].innerHTML;\n" +
    "if(Json.source == null)\n" +
    "{\n" +
    "nodesData.push([Json.x, Json.y, Json.r, Json.id]);\n" +
    "}\n" +
    "}\n" +
    "for(var i=0; i<nodesData.length; i++)\n" +
    "{\n" +
    "   var data = nodesData[i];\n" +
    "   console.log(data[1]);\n" +
    "   console.log(data[2]);\n" +
    "   console.log(data[3]);\n" +
    "}\n" +
    "}" + 
    "JSONProcess()" + // here
    "</script>");

请注意,像这样打印 javascript 不是一个好的做法,最好将 javascript 放入 .js 文件中,然后只打印带有源的单个脚本标记。

关于javascript - Console.log 和 Alert 在 Chrome 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31121235/

相关文章:

javascript - 使用 CSS 样式动态加载 XML

javascript - 如何将动画 div 限制到其父 div

java - 在 Spring Boot 中通过 POST 创建对实体创建的父引用

jQuery - 打开新组时关闭其他组

javascript - 在 JavaScript 中清空节点的最佳方法是什么

php - 使用 PHP 自动发布到 Pinterest

java - 没有找到类定义 ProxyBypassListSelector

java - 从java中的json对象获取正确的输出

html - CSS Flexbox - 使用 Flex Wrap 和 Flex Growth 属性时元素之间的间距

javascript - 粘性页脚不粘在 AngularJS 中