我有一个使用Accusofts Prizm ActiveX Viewer的网络应用程序,可以在线查看和编辑PDF。该产品似乎在包括边缘浏览器在内的所有浏览器中都可以正常使用,除非您猜对了,Internet Explorer11。我一直在互联网的深处进行搜索,以寻求解决方案,但没有找到有用的结果。
我收到的错误是SCRIPT5022: SyntaxError
,没有关于收到的错误的进一步信息,这使我进入以下功能,第三行是错误的接收者。
function createIconMap(iconText) {
var parser = new DOMParser();
var iconDoc = parser.parseFromString(iconText, 'image/svg+xml');
我已经运行了IE,并将其与chrome进行了比较,两位检查员都通知我它们的行为相同。 IE在此功能上停滞不前,Chrome继续显示PDF。
请在下面查看完整的JS
// createIconMap
// Given an SVG as a string, parse it and extract the content of all
// symbol elements with an id.
function createIconMap(iconText) {
var parser = new DOMParser();
var iconDoc = parser.parseFromString(iconText, 'image/svg+xml');
var icons = iconDoc.getElementsByTagName('symbol');
function attributeReducer(memo, attr) {
return memo + ' ' + attr.name + '="' + attr.value + '"';
}
function childReducer(memo, node) {
if (node.nodeType !== 1) {
return memo;
}
// Build the DOM string of this node. Unfortunately, IE does
// not implement innerHTML, outerHTML, or any of the other
// content methods for SVG Elements and Node elements from
// the DOMParser.
return memo + '<' + node.tagName + ' ' +
_.reduce(node.attributes, attributeReducer, '') +
'>' +
(node.childNodes.length ? reduceNode(node) : '') +
'</' + node.tagName + '>';
}
function reduceNode(node) {
return _.reduce(node.childNodes, childReducer, '');
}
_.forEach(icons, function (icon) {
var id = icon.getAttribute('id');
if (!id) {
return;
}
ICON_MAP[id] = reduceNode(icon);
});
}
function Viewer(element, options) {
this.$dom
.html(_.template(options.template.viewer)(_.extend({
reasons: this.redactionReasonsExtended,
annotationsMode: options.annotationsMode,
downloadFormats: downloadFormats,
annotationFormats: annotationFormats
}, PCCViewer.Language.data)))
.addClass('pccv')
.show();
createIconMap(options.icons);
}
答案 0 :(得分:0)
请检查文件(pdf,xml)的内容,可能是该文件包含错误描述。 有关更多详细信息,请参阅this sample。
此外,根据this thread,您可以尝试使用ActiveX解析文档。
答案 1 :(得分:0)
因此,随着时间的流逝,这就是发现的原因。从那以后,我发现Accusoft产品无法在IE 11 (64 bit version)上运行,这是Windows 8+上唯一可用的版本。我还确定将以下内容放在Try/Catch
中将有助于使其在部分时间内工作
var parser = new DOMParser();
var iconDoc = parser.parseFromString(iconText, 'image/svg+xml');