使用IE的OBJECT组件组装模板和数据出错

之前尝试着用了htmlunit爬取了js执行之后的页面,后来又遇到了一个大坑。
需求是,后台在使用htmlunit访问对应页面,在页面使用IE的OBJECT组件完成数据和模板的组装后返回特迷案在本地生成HTML文件,其中模板和数据都是在使用htmlunit时作为参数传入页面的。

组件代码

<OBJECT id="preview"
    classid="clsid:DD890748-A582-4716-AEFA-1658B3849045"
    codebase="js/tools/ThundPrintOcx.cab" width=1000px height=800px
    align=center hspace=0 vspace=0> </OBJECT>

在JS中使用VIEW方法组装

var preview = document.getElementById("preview");
    preview.View(data,templateContent)

期间一直碰到组装不成功或者组装出来的东西缺少内容。而把数据和模板直接写在页面的JS中直接使用不出问题。后来发现是因为引号的问题……
即:后台传参数过来之后,我在前端是从request中去取数据的,取出来的数据是在引号之内的字符串,因为这个关系,原本的双引号变成了单引号导致出现问题。百度之后找到了解决方案:

emplateContent = templateContent.replace(/'/g, '"')

使用表达式将单引号替换为双引号即可。
希望能解决碰到过同样问题的同学的困惑

猜你喜欢

转载自blog.csdn.net/weixin_39389850/article/details/78968792