我想創建一個使用JavaScript的動態HTML表。我已經寫了一個小功能,可以將行添加到表中。但是,單個單元本身應該是gsp標籤要素。在下面的示例中,我嘗試使用由grails-UI插件提供的autoComplete標記。儘管我將單元格的innerHTML設置爲gsp標記,但它並未呈現在頁面上。使用JavaScript的GSP標籤
function addIngredientRow(tableName,element){
var table = document.getElementById(tableName);
var lastRow = table.rows.length;
var row = table.insertRow(lastRow);
var leftCell = row.insertCell(0);
var autoCompleteDiv = document.createElement('div');
leftCell.appendChild(autoCompleteDiv);
autoCompleteDiv.innerHTML= '<gui:autoComplete id="autoCompleteIngredient" resultName="ingredients" labelField="name" idField="id" controller="recipe" \
action="getIngredientAsJSON" forceSelection="true" \
useShadow="true" width=60px queryDelay=0.5 />';
var rightCell = row.insertCell(1);
var autoCompleteDivR = document.createElement('div');
rightCell.appendChild(autoCompleteDivR);
autoCompleteDivR.innerHTML= '<p>test</p>';
}
的HTML代碼段調用此代碼如下:
<tr>
<td>
<gui:autoComplete
id="autoCompleteIngredient"
resultName="ingredients"
labelField="name"
idField="id"
controller="recipe"
action="getIngredientAsJSON"
forceSelection="true"
useShadow="true"
width=60px
queryDelay=0.5
/>
</td>
<td>
<div onclick="addIngredientRow('createRecipeTable',this)"><img alt="Add Ingredient" src="${resource(dir:'images/icons',file:'Add16.png')}" ></div>
</td>
</tr>
我已經檢查了JavaScript是被放在一個警報調用。所以所有的接線都很好。我認爲問題在於通過瀏覽器解析gsp標籤。我如何從JavaScript調用gsp標籤?
很酷...非常感謝您的回覆。你認爲在grails世界裏,一個好的框架/插件可以實現這一點嗎? –
考慮構建一個更好的系統 - 使用客戶端生成的代碼並在服務器端運行它是一個巨大的安全風險。對於有人查看網頁源代碼並提交可能會導致服務器死機的惡意gsp標籤,這是微不足道的。 –