【问题标题】:Why am I getting an error when trying to add the src attribute to an img tag using JavaScript within Colfusion?为什么在尝试使用 Colfusion 中的 JavaScript 将 src 属性添加到 img 标签时出现错误?
【发布时间】:2015-09-20 15:36:10
【问题描述】:

我正在使用 ColdFusion 连接到 Web 服务并执行方法。我将返回的 xml 字符串的内容存储到 ColdFusion 数组中,然后将 ColdFusion 数组转换为 JavaScript 数组,以便填充 HTML 文档的内容。

我在尝试将照片添加到名为“agent_photo_list”的无序列表时出现问题。特别是当我调用.setAttribute 方法时。它似乎涉及'src' 参数。当 JavaScript 代码不在 cfscript tagWriteOutput 方法中时,它会按我的预期工作。我已经研究过这个问题,但我无法找到足够相似的参考。我仍然无法理解我的问题是什么。我在下面包含了我的代码:

cfscript>
    WriteOutput('
    <script language = "JavaScript">
        var #ToScript(array, "jsArray")#
        var agent = jsArray[0];
        document.getElementById("output").innerHTML = agent.firstname + " " + agent.lastname;
        var imgurl = "_images/agentphoto.jpg";
        var node = document.createElement("LI");  
        var imgnode = (document.createElement("IMG"));
        imgnode.setAttribute('src', "imgurl");
        node.appendChild(imgnode);
        document.getElementById("agent_photo_list").appendChild(node);
    </script>
    ')
</cfscript>  

我正在使用位于我的_images 文件夹中的 jpg 文件进行测试,稍后我会将其更改为agent.photourl

我得到的错误如下:

在第 117 行第 35 列发现无效的 CFML 构造。ColdFusion 为 查看以下文本:

src

CFML 编译器正在处理:

  • 一个表达式开始 使用 WriteOutput,在第 111 行,第 17 列。此消息通常是 由表达式结构中的问题引起。
  • 脚本 以 WriteOutput 开头的语句,第 111 行,列 17.
  • 从第 102 行第 10 列开始的 cfscript 标记。
包含或处理的文件的具体顺序是:C:\inetpub\wwwroot\webservice.cfm,第 117 行

我很好奇为什么我的 JavaScript 在调用 setAttribute 方法之前在 cfscript 标记内是有效的,以及为什么它在 cfscript 标记之外是有效的。

我会感谢您的洞察力。谢谢你。

【问题讨论】:

    标签: javascript html xml coldfusion


    【解决方案1】:

    您需要将 src 包裹在 "" 中。此外,在 WriteOutput 闭包的末尾添加“;”。下面的代码应该适合你。

    <cfscript>
        WriteOutput('
        <script language = "JavaScript">
            var #ToScript(array, "jsArray")#
            var agent = jsArray[0];
            document.getElementById("output").innerHTML = agent.firstname + " " + agent.lastname;
            var imgurl = "_images/agentphoto.jpg";
            var node = document.createElement("LI");  
            var imgnode = (document.createElement("IMG"));
            imgnode.setAttribute("src", "imgurl");
            node.appendChild(imgnode);
            document.getElementById("agent_photo_list").appendChild(node);
        </script>
        ');
    </cfscript> 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      • 2014-03-10
      • 1970-01-01
      • 2021-06-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多