- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我通过 Ajax get 请求接收响应正文,在该正文中我对特定部分感兴趣,如下所示:
if (w2.isHidden() == false) {
var counterValue = 0;
try {
var url = site + '/user.widget?page=just_data&query=Select IFNULL( time(MAX(longestWaitingSeconds), "unixepoch") , time(0, "unixepoch")) From AvayaCMSAT_skill';
var loader = dhtmlxAjax.getSync(url);
var text = loader.xmlDoc.responseText;
var dataCells = text.split("<cell>");
if (dataCells.length >= 2) {
counterValue = dataCells[1];
counterValue = counterValue.substring(0, counterValue.indexOf("<"));
}
} catch (err) {}
var elem = document.getElementById("counter2_Value");
elem.innerHTML = counterValue;
}
if (w5.isHidden() == false) {
var counterValue = 0;
try {
var url = site + '/user.widget?page=just_data&query=Select SUM(callsWaiting) From AvayaCMSAT_skill';
var loader = dhtmlxAjax.getSync(url);
var text = loader.xmlDoc.responseText;
var dataCells = text.split("<cell>");
if (dataCells.length >= 2) {
counterValue = dataCells[1];
counterValue = counterValue.substring(0, counterValue.indexOf("<"));
}
} catch (err) {}
var elem = document.getElementById("counter5_Value");
elem.innerHTML = counterValue;
}
if (w10.isHidden() == false) {
var counterValue = 0;
try {
var url = site + '/user.widget?page=just_data&query=Select SUM(callsWaiting) From AvayaCMSAT_vdn';
var loader = dhtmlxAjax.getSync(url);
var text = loader.xmlDoc.responseText;
var dataCells = text.split("<cell>");
if (dataCells.length >= 2) {
counterValue = dataCells[1];
counterValue = counterValue.substring(0, counterValue.indexOf("<"));
}
} catch (err) {}
var elem = document.getElementById("counter10_Value");
elem.innerHTML = counterValue;
}
if (w11.isHidden() == false) {
var counterValue = 0;
try {
var url = site + '/user.widget?page=just_data&query=Select IFNULL( time(MAX(longestWaitingSeconds), "unixepoch") , time(0, "unixepoch")) From AvayaCMSAT_vdn';
var loader = dhtmlxAjax.getSync(url);
var text = loader.xmlDoc.responseText;
var dataCells = text.split("<cell>");
if (dataCells.length >= 2) {
counterValue = dataCells[1];
counterValue = counterValue.substring(0, counterValue.indexOf("<"));
}
} catch (err) {}
var elem = document.getElementById("counter11_Value");
elem.innerHTML = counterValue;
}
if (w1.isHidden() == false) {
try {
var windowDims = getWindowStatus(1, 'grid');
var url = site + '/user.widget?page=just_data&query=Select groupName as "Group Name ", groupNumber as "Group Number", callsWaiting as " Calls Waiting ", longestWaiting as "Longest Waiting Call ", acceptableServiceLevel as "Acceptable Service Level", percentInServiceLevel as " Percent Within Service Level", staffed as "Staffed Agents ", available as " Agents Available" From AvayaCMSAT_skill&windowWidth=' + windowDims[2];
var loader = dhtmlxAjax.getSync(url);
if (loader.xmlDoc.responseText.length > 0) {
grid1.parse(loader.xmlDoc.responseText, 'xml');
grid1.loadSortingFromCookie('grid1');
grid1.loadSizeFromCookie('grid1');
}
} catch (err) {}
}
if (w6.isHidden() == false) {
try {
var url = site + '/user.widget?page=just_chart_data&query=SELECT SUM(available) as "Staffed Agents", SUM(staffed - available) as "Unavailable Agents" from AvayaCMSAT_skill&widgetType=pie_medium';
var loader = dhtmlxAjax.getSync(url);
pie_medium6.clearAll();
pie_medium6.parse(loader.xmlDoc.responseText, 'xml');
pie_medium6.refresh();
} catch (err) {}
}
if (w7.isHidden() == false) {
try {
var windowDims = getWindowStatus(7, 'grid');
var url = site + '/user.widget?page=just_data&query=Select agentName as "Agent Name", loginId as "LOGIN ID", agentExt as "Agent Extension", groupName as "Group Name", groupNumber as "Group Number", state as "Agent State", IFNULL( time((statusDuration), "unixepoch") , time(0, "unixepoch")) as"Status Duration" From AvayaCMSAT_agent&windowWidth=' + windowDims[2];
var loader = dhtmlxAjax.getSync(url);
if (loader.xmlDoc.responseText.length > 0) {
grid7.parse(loader.xmlDoc.responseText, 'xml');
grid7.loadSortingFromCookie('grid7');
grid7.loadSizeFromCookie('grid7');
}
}
catch (err) {}
}
if (w8.isHidden() == false) {
try {
var windowDims = getWindowStatus(8, 'grid');
var url = site + '/user.widget?page=just_data&query=Select groupName as "Group Name", groupNumber as "Group Number", SUM(acdCalls) as " Acd Calls ", SUM(extInCalls) as " Extension In Calls ", SUM(extOutCalls) as " Extension Out Calls" From AvayaCMSAT_agent GROUP BY groupName, groupNumber&windowWidth=' + windowDims[2];
var loader = dhtmlxAjax.getSync(url);
if (loader.xmlDoc.responseText.length > 0) {
grid8.parse(loader.xmlDoc.responseText, 'xml');
grid8.loadSortingFromCookie('grid8');
grid8.loadSizeFromCookie('grid8');
}
}
catch (err) {}
}
if (w9.isHidden() == false) {
try {
var windowDims = getWindowStatus(9, 'grid');
var url = site + '/user.widget?page=just_data&query=Select agentName as "Agent Name", loginId as "LOGIN ID", groupName as "Group Name", groupNumber as "Group Number", totalAcdCalls as "Total ACD Calls", avgTalkTime as "Average Talk Time", totalAfterCall as "Total After Call", totalAvailTime as "Total Available Time", totalAuxOthers as"Total Aux Others", extnCalls as "Extension Calls", avgExtnTime as "Average Extension Time", totalTimedStaff as "Total Time Staffed", totalHoldTime as "Total Hold Time" From AvayaCMSAT_agent&windowWidth=' + windowDims[2];
var loader = dhtmlxAjax.getSync(url);
if (loader.xmlDoc.responseText.length > 0) {
grid9.parse(loader.xmlDoc.responseText, 'xml');
grid9.loadSortingFromCookie('grid9');
grid9.loadSizeFromCookie('grid9');
}
}
catch (err) {}
}
if (w3.isHidden() == false) {
try {
var windowDims = getWindowStatus(3, 'grid');
var url = site + '/user.widget?page=just_data&query=Select groupName as "Group Name", groupNumber as "Group Number", percentInServiceLevel as"Percent Within Service Level", totalAcdCalls as "Total Acd Calls", avgSpeedAnswer as "Average Speed Answer", abandonCalls as "Abandoned Calls", avgAbandonTalkTime as "Average Abandon Talk Time", avgTalkTime as "Average Talk Time", totalAfterCall as "Total After Call", flowIn as "Flow In", flowOut as "Flow Out", totalAuxOther as " Total Aux/Other", avgStaff as" Average Staff" From AvayaCMSAT_skill&windowWidth=' + windowDims[2];
var loader = dhtmlxAjax.getSync(url);
if (loader.xmlDoc.responseText.length > 0) {
grid3.parse(loader.xmlDoc.responseText, 'xml');
grid3.loadSortingFromCookie('grid3');
grid3.loadSizeFromCookie('grid3');
}
}
catch (err) {}
}
if (w4.isHidden() == false) {
try {
var url = site + '/user.widget?page=just_data&query=Select 0 AS"Min", ROUND((((SUM(totalAcdCalls * percentInServiceLevel)/100)*1.0)/SUM(totalAcdCalls))*100,2) AS"Cur",100 AS "Max" From AvayaCMSAT_skill';
var loader = dhtmlxAjax.getSync(url);
var text = loader.xmlDoc.responseText;
var dataCells = text.split("<cell>");
if (dataCells.length >= 3) {
var speedoValue = dataCells[2];
speedoValue = speedoValue.substring(0, speedoValue.indexOf("<"));
$('#speedometer4_div').speedometer({
percentage: speedoValue || 0
});
}
}
catch (err) {}
}
if (w12.isHidden() == false) {
try {
var windowDims = getWindowStatus(12, 'grid');
var url = site + '/user.widget?page=just_data&query=Select vdnName as "Vdn Name", extSkill as "Skill/Extension", num as " Vector Number", callsWaiting as "Calls Waiting", longestWaitingCall as "Longest Waiting Call", acdCalls as "Acd Calls", avgSpeedTalk as"Average Speed Talk", abandonedCalls as "Abandoned Calls", avgAbandonTime as "Average Abandon Time", avgTalkHold as "Average Talk Hold", connCalls as "Conference Calls", flowOut as "Flow Out", callBusyDisc as "Call Busy Disconnect", percentInServLevel as "Percent In Service Level" From AvayaCMSAT_vdn WHERE meas !="none"&windowWidth=' + windowDims[2];
var loader = dhtmlxAjax.getSync(url);
if (loader.xmlDoc.responseText.length > 0) {
grid12.parse(loader.xmlDoc.responseText, 'xml');
grid12.loadSortingFromCookie('grid12');
grid12.loadSizeFromCookie('grid12');
}
}
catch (err) {}
}
if (w13.isHidden() == false) {
try {
var windowDims = getWindowStatus(13, 'grid');
var url = site + '/user.widget?page=just_data&query=Select vdnName as "Vdn Name", extSkill as "Skill/Extension", num as " Vector Number", callsOffered as "Calls Offered", totalCalls as "Total Acd Calls", avgSpeedAnswered as "Avg Speed Answered", totalAbandonedCalls as"Aboanded Calls", dayAvgAbandonTalk as "AVG Abandon Talk Time", dayAvgTalkHold as "AVG Talk Hold", totalConnCalls as "Conn Calls", totalFlowOut as "Flow Out", totalCallBusyDisc as "Call Busy Disc", prctInServLevel as "Percent In Service Level" From AvayaCMSAT_vdn WHERE meas !="none"&windowWidth=' + windowDims[2];
var loader = dhtmlxAjax.getSync(url);
if (loader.xmlDoc.responseText.length > 0) {
grid13.parse(loader.xmlDoc.responseText, 'xml');
grid13.loadSortingFromCookie('grid13');
grid13.loadSizeFromCookie('grid13');
}
}
catch (err) {}
}
如果您注意到上面的字符串中有一个始终以以下内容开头的重复模式:
if (w[number].isHidden() == false){
我对最后一个括号之后和之前的内容感兴趣。例如在本例中:
if (w2.isHidden() == false) {
//PART TO EXTRACT
var counterValue = 0;
try {
var url = site + '/user.widget?page=just_data&query=Select IFNULL(time(MAX(longestWaitingSeconds), "unixepoch") , time(0, "unixepoch"))From vayaCMSAT_skill';
var loader = dhtmlxAjax.getSync(url);
var text = loader.xmlDoc.responseText;
var dataCells = text.split("<cell>");
if (dataCells.length >= 2) {
counterValue = dataCells[1];
counterValue = counterValue.substring(0, counterValue.indexOf("<"));
}
}
catch (err) {}
var elem = document.getElementById("counter2_Value");
elem.innerHTML = counterValue;
//END PART TO EXTRACT
}
正如上面突出显示的,我感兴趣的是提取开始和结束 {} 之间的字符串并将其放入数组中。我希望能够对原始响应正文字符串中显示的所有 if 语句执行此操作。
我已经考虑过使用 regular expressions和indexOf()/substring(),例如:
var start = html.indexOf("false) {", 0) + 8;
var end = html.indexOf("if (w", start);
alert(html.substring(start, end));
但是我没有设法在左大括号和右大括号之间获取字符串。
最佳答案
var tempWidgetContent = html.match(/w\d+\.isHidden(.*)\(\) == false\)[\s\S]*?catch\(err\)\{ \}/gm);
for (var i = 0; i < tempWidgetContent.length; i++) {
var widgetContent = tempWidgetContent[i].substring(tempWidgetContent[i].indexOf('{') + 1);
}
这成功了。
关于javascript - 解析 HTML 响应正文字符串以提取部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21737653/
我在休息服务中有以下方法: @POST @Path("/create") @ResponseStatus(HttpStatus.CREATED) @Consumes(M
这个问题不太可能对 future 的访客有帮助;它只与一个小的地理区域、一个特定的时刻或一个非常狭窄的情况相关,通常不适用于互联网的全局受众。如需帮助使这个问题更广泛地适用,visit the hel
我有这样的弹出框: Speelland And here's some amazing content. It's very engaging. Right? Meer
我正在开发一个 firefox 插件,我正在收听这样的 http 响应: var observerService = Components.classes["@mozilla.org/observer
我正在使用 jqtouch 制作一个移动网站。我还在网站中实现了图库图像 slider ,但是当图库放在我需要的位置时(在 之间,图像不会显示。 修补了几个小时后,删除了 display: none
为了在 iPad 上的 Safari 上显示视差效果,我采用了以下 CSS 规则: body:after { content: ""; position: fixed; top
我想在通过 excel VBA 创建的电子邮件正文中插入一个链接。链接每天都在变化,所以我把它的值放在单元格 B4 中。但是,我找不到正确的方法来发送带有该链接的电子邮件。 这是我正在使用的代码: P
我正在尝试使用具有非常大主体的 Postman 执行 POST 请求。只有一个 JSON 字段非常大,我想知道是否可以从 Postman 的文件中加载该字段? { "field1": {
这个问题是针对 SoapUI 5.2.1 社区版的: 我有一个包含变量的 JSON 主体的 POST 请求。 我总是能够通过单击“原始”选项卡以查看请求进行或将发送到服务器来验证这些参数是否采用正确的
我有这个按钮,单击该按钮会打开 Outlook,其中包含我提供的详细信息。我还有一个 TEXTAREA,其中包含某些文本。我正在寻找一种方法让此文本出现在我的 Outlook 正文中。这可以做到吗?请
我知道错误消息是不言自明的,我们无法多次读取消息正文。这里我使用AOP(面向方面编程)来进行审计日志。 [AuditServiceMethod(AttributePriority = 0)] [F
我在 grails 3.3.3 中编写自定义验证器(命令)时遇到了一些问题。具体来说,我正在尝试验证其正文由项目列表组成的 POST 请求。这就是我所拥有的... 命令: class VoteComm
这个问题在这里已经有了答案: json.Marshal(struct) returns "{}" (3 个回答) JSON and dealing with unexported fields (3
我想清理很多邮件的 HTML 正文,它们有点脏(取自 Gmail 发送的电子邮件):有很多嵌套 ,不需要的字体更改等我想清理它并只保留 , , , , , 仅此而已(可能还有 或一些 ,
我正在使用 Accordion 功能在我的模块中添加端口详细信息。我只想在水平方向上显示正文内容。请看下面的 fiddle 。 html, body { background-color:#e
我的 HTML 正文中有这个: loaded y&EACUTE;t. 使用 JavaScript 我有这个: $( document ).ready(function() { document.bod
我对图表有很大的疑问。我试图在谷歌图表中显示一些 json 值,但我总是会出错。从 JSON 正文中,我只需要图表上个月的“全部购买”和“日期”。我见过的所有例子,他们已经有了一个静态的自定义 Jso
我的应用程序的功能之一涉及用户填写三个单独的文本字段(预订名称、客人和日期),然后使用文本编辑器通过短信发送这些字段中的文本。我无法将这些 View 中的文本放入正文中。这是我的代码: - (IBAc
我正在开发一个 HTA,它应该对 onunload 事件进行一些最终修改。该事件似乎没有被触发。 该事件是否仍受支持?是否有 IE 事件可以知道页面何时关闭? 我检查了一下(JavaScript bo
我正在尝试将以下图像添加为网站内容的背景: http://webbos.co/vibration/wp-content/themes/vibration-child-theme/images/back
我是一名优秀的程序员,十分优秀!