onclick 事件的转义参数不起作用

escape parameters on onclick event doesnt work

我正在 atm 努力将动态 table 放入 html 页面,每个 table 行的第一列都有一个按钮来显示项目的描述(这是一个项目列表)。

然而,当使用 onclick 事件设置内部 html 时,我无法触发警报。当我想调用另一个 JS 函数来调用警报并尝试在我的 onclick 函数中传递参数时它不会做任何事情,当试图转义引号时没有任何作用。

Javascript

function showAuctionList(auctionList){
  var table = document.getElementById("myTableData");

  for(var i = 0 ; i< auctionList.length ; i++){
    var rowCount = table.rows.length;
    var row = table.insertRow(rowCount);
    var description = auctionList[i].itemDesc;

    row.insertCell(0).innerHTML= '<input type="button" value = "Show Description" onclick="showDescription( description)">';
    row.insertCell(1).innerHTML= auctionList[i].auctionId;
    row.insertCell(2).innerHTML= auctionList[i].sellId;
    row.insertCell(3).innerHTML= auctionList[i].startDate;
    row.insertCell(4).innerHTML= auctionList[i].endDate;
    row.insertCell(5).innerHTML= auctionList[i].buyNow;
    row.insertCell(6).innerHTML= auctionList[i].minBid;
    row.insertCell(7).innerHTML= auctionList[i].actualBid;
    row.insertCell(8).innerHTML= auctionList[i].itemCat;
    row.insertCell(9).innerHTML= auctionList[i].itemName;
    row.insertCell(10).innerHTML= auctionList[i].itemDesc;
  }
}

function showDescription(desc){
  alert(desc);
}

HTML

  <div id="search" style="display:none">
  <button id="searchButton" onclick="


google.script.run.withSuccessHandler(showAuctionList).getAuctionList()"> Search </button> <br>
  <div id="mydata">
    <table id="myTableData"  border="1" cellpadding="2">
      <tr>
        <td>&nbsp;</td>
        <td><b>Auction ID</b></td>
        <td><b>Seller ID</b></td>
        <td><b>Start Date</b></td>
        <td><b>End Date</b></td>
        <td><b>Buy now option</b></td>
        <td><b>Min Bid</b></td>
        <td><b>Actual Bid</b></td>
        <td><b>Category</b></td>
        <td><b>Item Name</b></td>
        <td><b>Description</b></td>
     </tr>
    </table>
    &nbsp;<br/>
</div>

gs 函数调用:

 function doget(e){
   ...
   return HtmlService.createTemplateFromFile('Main').evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME);
 }

是否可以将描述作为参数进行转义,或者关于该问题的解决方法是什么?但其余部分工作得很好

试试这个。由于描述似乎是一个 string 值,您需要 surround 它与 qoutes.

row.insertCell(0).innerHTML = '<input type="button" value = "ShowDescription"  onclick="showDescription(\'' + description + '\');">';

使用此代码无需转义:

row.insertCell(0).innerHTML= '<input type="button" value = "Show 
Description" onclick="showDescription(this.getAttribute(\'description\'))">';
row.cells[0].firstChild.setAttribute('description', description);