表格单元格中预填充的文本显示为“未定义”.当在JS中添加HTML标签时
Pre-populated text in Table Cell showing as "undefined" when HTML tags are added in JS
我卡住了。我有一个科学怪人的代码从这里和那里获得一个理想的结果。这段JS代码用于一个表(如下所示),该表是由一个单独的程序(CMS Supervisor)生成的,该程序基于一个每5秒循环一次的脚本输出到一个HTML文件。其中Table元素是静态的。
有一个page_template.htm, CMS在写入实际的HTML文件page_.htm并将表插入到任何额外的编码之前读取…该表是在以下标签中编写的:
<CVSUP_BODY></CVSUP_BODY> '' Within these tags is where the JS code has to be placed on the template in order to be pulled from the template and placed on the actual page_htm that is viewed.
我创建了一个提琴,然而,由于某种原因,眨眼没有效果(可能是我选择不准确的框架和扩展中的设置)。尽管如此,我做了一个test_page.htm,可以让一切工作,除了在"最古老的呼叫等待"显示"未定义"的文本,它闪烁并根据情况突出显示BG,但它不会显示实际的文本(时间持续时间)应该在那里。
这是小提琴…任何帮助都将非常感激。如果我遗漏了什么,请告诉我。
注:我知道"眨眼"在这个论坛和许多其他论坛上都是一个令人不快的话题,所以我想向任何对这个功能有不快口味的人保证,这个属性不是用于公共领域,只是用来引起对呼叫中心呼叫队列中超过2分钟的呼叫的注意。:)
JS:
function formatCells(table) {
var tbody = table.getElementsByTagName('tbody')[0],
cells = tbody.getElementsByTagName('td'),
colors = ['red', 'black', 'white'],
blinkme = "<blink>" + cells.textContent + "</blink>";
我也试过了(没有效果):
blinkme = "<blink>",
blinkme += cells.textContent,
blinkme += "</blink>";
JS继续说:
for (var c = 0, len = cells.length; c < len; c++) {
if (cells[c].cellIndex > 1) {
switch (parseInt((cells[c].textContent || cells[c].innerText), 10)) {
case 1:
cells[c].style.backgroundColor = colors[2];
cells[c].style.color = colors[1];
break;
case 2:
case 3:
case 4:
case 5:
cells[c].style.backgroundColor = colors[0];
cells[c].style.color = colors[2];
cells[c].style.fontWeight = '900';
cells[c].innerHTML = blinkme;
break;
}
}
}
}
formatCells(document.getElementsByTagName('table')[0]);
function blinkIt() {
if (!document.all) return;
else {
for (i = 0; i < document.all.tags('blink').length; i++) {
s = document.all.tags('blink')[i];
s.style.visibility = (s.style.visibility == 'visible') ? 'hidden' : 'visible';
}
}
}
HTML: <TABLE BORDER=1 CELLPADDING=1 CELLSPACING=0>
<TR>
<TH>Skill</TH>
<TH>Calls Waiting</TH>
<TH>Oldest Call</TH>
</TR>
<TR ALIGN=RIGHT>
<TD ALIGN=LEFT>Affiliates</TD>
<TD ALIGN=CENTER>2</TD>
<TD ALIGN=CENTER>2:01</TD>
</TR>
<TR ALIGN=RIGHT>
<TD ALIGN=LEFT>Agent Other</TD>
<TD ALIGN=CENTER>0</TD>
<TD ALIGN=CENTER>:00</TD>
</TR>
<TR ALIGN=RIGHT>
<TD ALIGN=LEFT>Agent to Agent Inbou</TD>
<TD ALIGN=CENTER>0</TD>
<TD ALIGN=CENTER>:00</TD>
</TR>
<TR ALIGN=RIGHT>
<TD ALIGN=LEFT>Agent Web Assist</TD>
<TD ALIGN=CENTER>0</TD>
<TD ALIGN=CENTER>:00</TD>
</TR>
<TR ALIGN=RIGHT>
<TD ALIGN=LEFT>Agt D Supplies</TD>
<TD ALIGN=CENTER>0</TD>
<TD ALIGN=CENTER>:00</TD>
</TR>
<TR ALIGN=RIGHT>
<TD ALIGN=LEFT>Agt D Contracting</TD>
<TD ALIGN=CENTER>0</TD>
<TD ALIGN=CENTER>2:00</TD>
</TR>
<TR ALIGN=RIGHT>
<TD ALIGN=LEFT>Agt D Other</TD>
<TD ALIGN=CENTER>0</TD>
<TD ALIGN=CENTER>:00</TD>
</TR>
<TR ALIGN=RIGHT>
<TD ALIGN=LEFT>Agt D Scheduling</TD>
<TD ALIGN=CENTER>0</TD>
<TD ALIGN=CENTER>4:00</TD>
</TR>
<TR ALIGN=RIGHT>
<TD ALIGN=LEFT>AOR Agent</TD>
<TD ALIGN=CENTER>0</TD>
<TD ALIGN=CENTER>:00</TD>
</TR>
<TR ALIGN=RIGHT>
<TD ALIGN=LEFT>AOR CB</TD>
<TD ALIGN=CENTER>0</TD>
<TD ALIGN=CENTER>:00</TD>
</TR>
<TR ALIGN=RIGHT>
<TD ALIGN=LEFT>AOR Other</TD>
<TD ALIGN=CENTER>0</TD>
<TD ALIGN=CENTER>:00</TD>
</TR>
<TR ALIGN=RIGHT>
<TD ALIGN=LEFT>AOR Sales</TD>
<TD ALIGN=CENTER>0</TD>
<TD ALIGN=CENTER>:00</TD>
</TR>
<TR ALIGN=RIGHT>
<TD ALIGN=LEFT>AOR_LTD Sales</TD>
<TD ALIGN=CENTER>0</TD>
<TD ALIGN=CENTER>:00</TD>
</TR>
<TR ALIGN=RIGHT>
<TD ALIGN=LEFT>Appointment Setting</TD>
<TD ALIGN=CENTER>0</TD>
<TD ALIGN=CENTER>:00</TD>
</TR>
<TR ALIGN=RIGHT>
<TD ALIGN=LEFT>Career Recruiting</TD>
<TD ALIGN=CENTER>0</TD>
<TD ALIGN=CENTER>:00</TD>
</TR>
<TR ALIGN=RIGHT>
<TD ALIGN=LEFT>Co 011</TD>
<TD ALIGN=CENTER>0</TD>
<TD ALIGN=CENTER>:00</TD>
</TR>
<TR ALIGN=RIGHT>
<TD ALIGN=LEFT>Escalation</TD>
<TD ALIGN=CENTER>0</TD>
<TD ALIGN=CENTER>:00</TD>
</TR>
<TR ALIGN=RIGHT>
<TD ALIGN=LEFT>Executive Operators</TD>
<TD ALIGN=CENTER>0</TD>
<TD ALIGN=CENTER>:00</TD>
</TR>
<TR ALIGN=RIGHT>
<TD ALIGN=LEFT>Mktr Other</TD>
<TD ALIGN=CENTER>0</TD>
<TD ALIGN=CENTER>:00</TD>
</TR>
<TR ALIGN=RIGHT>
<TD ALIGN=LEFT>Mktr Sched</TD>
<TD ALIGN=CENTER>0</TD>
<TD ALIGN=CENTER>:00</TD>
</TR>
<TR ALIGN=RIGHT>
<TD ALIGN=LEFT>Other Benefit Verif</TD>
<TD ALIGN=CENTER>0</TD>
<TD ALIGN=CENTER>:00</TD>
</TR>
<TR ALIGN=RIGHT>
<TD ALIGN=LEFT>Other Claim Status</TD>
<TD ALIGN=CENTER>0</TD>
<TD ALIGN=CENTER>:00</TD>
</TR>
<TR ALIGN=RIGHT>
<TD ALIGN=LEFT>Other Other</TD>
<TD ALIGN=CENTER>0</TD>
<TD ALIGN=CENTER>:00</TD>
</TR>
<TR ALIGN=RIGHT>
<TD ALIGN=LEFT>Other UW Interview</TD>
<TD ALIGN=CENTER>0</TD>
<TD ALIGN=CENTER>:00</TD>
</TR>
<TR ALIGN=RIGHT>
<TD ALIGN=LEFT>Part D Esc</TD>
<TD ALIGN=CENTER>0</TD>
<TD ALIGN=CENTER>:00</TD>
</TR>
<TR ALIGN=RIGHT>
<TD ALIGN=LEFT>Rx Other</TD>
<TD ALIGN=CENTER>0</TD>
<TD ALIGN=CENTER>:00</TD>
</TR>
<TR ALIGN=RIGHT>
<TD ALIGN=LEFT>Rx Sched</TD>
<TD ALIGN=CENTER>0</TD>
<TD ALIGN=CENTER>:00</TD>
</TR>
<TR ALIGN=RIGHT>
<TD ALIGN=LEFT>Spanish</TD>
<TD ALIGN=CENTER>0</TD>
<TD ALIGN=CENTER>2:01</TD>
</TR>
</TABLE>
第5行('td').textContent
未定义。您需要将cells[c].innerHTML = blinkme
更改为cells[c].innerHTML = '<blink>' + cells[c].textContent + '</blink>'
;
在blinkIt方法中,您可以使用querySelectorAll来收集blink标签,如下所示:
var blinkTags = document.querySelectorAll('blink');
for (i = 0; i < blinkTags.length; i++) {
s = blinkTags[i];
s.style.visibility = (s.style.visibility == 'visible') ? 'hidden' : 'visible';
}
同样,在主体的onload事件发生时,blinkIt方法是未定义的。您必须在定义blinkIt函数时设置间隔。我把这个留给你。
- Node.js错误“;ReferenceError:全局未定义“;在从0.10.2更新到0.12.2之后
- 如何处理错误'控制台未定义'在powershell中
- ReferenceError:regeneratorRuntime未定义(但在作用域内工作)
- getElementsByTagName'未定义'在Firefox和Chrome中
- 如何抓住'ga未定义'在您的开发环境中
- 未定义显示在选项中
- "键未定义”;在AngularJS'的自定义筛选功能
- 'io未定义'在客户端上.在HTML中包含socket.io脚本标记
- $stateParams变为'未定义'在传递到控制器之后
- 'require未定义'在Meteor.js中,当包含NPM包时
- 事件未定义错误在 javascript 中只有 Firefox
- 变量在 iPad 上可以未定义与在我的浏览器中定义的原因
- ReferenceError:未定义$traceurRuntime(在angularjs应用程序中)
- 静态方法在 ES6 类中未定义,在 reactjs 中有一个装饰器
- AngularJS”;ReferenceError:窗口未定义“;在NodeJS应用程序中
- Handlebars追加'未定义'在助手输出上
- 为什么"对象未定义”;在这种情况下没有抛出错误
- JavaScript-“;变量未定义”;在循环的一个部分,在另一个部分工作
- 获得'未定义'在原型的构造函数中初始化属性时
- 表格单元格中预填充的文本显示为“未定义”.当在JS中添加HTML标签时