2015-07-02 22 views
0

我正在使用ColdFusion連接並執行Web服務中的方法。我將返回的xml字符串的內容存儲到ColdFusion數組中,然後將ColdFusion數組轉換爲JavaScript數組,以便我填充HTML文檔的內容。爲什麼在嘗試使用Colfusion中的JavaScript將src屬性添加到img標記時出現錯誤?

當試圖將照片添加到名爲「agent_photo_list」的無序列表時,出現了問題。具體當我撥打.setAttribute方法。它似乎涉及'src'參數。當JavaScript代碼不在cfscript tagWriteOutput方法中時,JavaScript代碼正常工作。我研究了這個問題,我一直沒有找到足夠相似的參考。我仍然無法理解我的問題。我已經包含下面我的代碼:

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

我得到的錯誤提供如下:

無效CFML結構在列35.ColdFusion上線117發現 看着下面的文字:<p> SRC </P > <p>的CFML 編譯器正在處理中:<ul> <li>表達式開頭 帶有WriteOutput,位於第111行,第17列。此消息通常是由 引起的問題表達式結構。 <李>腳本 語句WriteOutput上線111開始,柱 17. <利>甲CFSCRIPT標籤開始在線102上,柱10 </UL >文件的特定序列包括或處理是:C:\的Inetpub \ wwwroot的\ webservice.cfm,行:117

我很好奇,爲什麼我的JavaScript是cfscript標籤內部的功能,直到調用setAttribute方法以及爲什麼它是cfscript標籤之外發揮作用。

我會感激你的洞察力。謝謝。

回答

3

您需要將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> 
相關問題