internet-explorer-11 - JSPDF 2.3.0 with IE11 in SharePoint on Premises not load
问题描述
我正在尝试在 SharePoint 中使用 jsPDF.umd.js 在企业环境中创建一些 pdf。可悲的是,在这种环境下我不得不依赖 IE11。
我正在加载带有脚本标签的 jsPDF
<script type="text/javascript" src="/sites/xxxx/polyfills.umd.js"></script>
<script type="text/javascript" src="/sites/xxxx/jsPDF.umd.js"></script>
并尝试使用 new jspdf.jsPDF() 创建一个对象;
这适用于 Firefox 和 Edge,但 Internet Explorer 似乎根本不加载 jsPDF.umd.js。
错误似乎是
SCRIPT1047: In strict mode, function declarations cannot be nested inside a statement or block. They may only appear at the top level or directly inside a function body.
File: jsPDF.umd.js, Line: 744, Column: 5
我很茫然,因为这适用于ff和edge,但不适用于IE。示例 ( http://raw.githack.com/MrRio/jsPDF/master/# ) 站点适用于所有浏览器。
有没有办法禁用严格模式?
我以前从来没有遇到过 use strict 的问题——尽管我不知道它是否以及在哪里被激活。
我不是 JavaScript 开发人员 - 所以这里可能存在一个完全不同的问题。
编辑:问题似乎是带有javascript的IE。我从 jspdf.umd.js 中注释了错误的行,现在在第 847 行出现语法错误
let protection = 192;
也许 IE 使用的是 ECMAscript 5 之前的引擎?
edit2:navigator.userAgent 输出“Mozilla/5.0(兼容;MSIE 10.0;Windows NT 6.3;WOW64;Trident/7.0;.NET4.0E;.NET4.0C;.NET CLR 3.5.30729;.NET CLR 2.0.50727; .NET CLR 3.0.30729;缩放 3.6.0)"
所以我认为我处于兼容性视图 - 切换文档模式似乎可以解决问题 - 我不知道如何从这里开始,因为这不是所有用户的通用解决方案。
edit3:所以页面包含
<meta http-equiv="X-UA-Compatible" content="IE=10">
所以我想我需要改变它。也许这些文章会有所帮助: https ://www.dannyjessee.com/blog/index.php/2020/03/rendering-a-single-sharepoint-page-in-ie-using-edge-mode/ https:// paultavares.wordpress.com/2015/01/20/how-to-render-a-sharepoint-page-in-ie-using-edge-mode-without-changed-the-master-page/
解决方案
从描述中,我了解到 JSPDF 可以使用IE 11或Edge文档模式。但是 Sharepoint 站点包含以IE 10文档模式加载站点的元标记。这破坏了 JSPDF 功能。
要解决此问题,您需要在该IE=edge
模式下加载站点。
您只需更新您的 SharePoint 母版页以针对最新版本的 IE,要更新您的母版页,请按照以下简单步骤操作。
第 1 步:下载母版页文件。
- 转到站点设置。
- 然后是母版页和页面布局。
- 查找母版页的 HTML 版本。如果您使用西雅图作为站点的母版页,请查找 seattle.html 文件。如果您使用的是 Oslo 母版页,请查找 oslo.html 文件。
第 2 步:更新母版页代码。
- 在您选择的文本编辑器中打开下载的文件,然后查找以下元标记。
<meta http-equiv="X-UA-Compatible" content="IE=10" />
- 将 content 属性的值更新为:
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
- 现在保存文件。
注意:元标记可能会在您的母版页文件中多次放置,请确保全部更新。
第 3 步:上传母版页文件。
在母版页和页面布局 上,单击功能区栏,然后单击上传文档按钮。
现在通过单击选择文件按钮选择您刚刚编辑的文件,然后单击确定上传。
将出现另一个对话框,要求您输入有关母版页的一些信息。不要输入任何内容,只需单击“签入”按钮。
您需要做的最后一步是让所有站点访问者都可以使用您的更改,即发布此母版页。
为此,请选择您的母版页,然后单击功能区栏中的发布按钮。
要继续发布,请在下一个对话框中单击“确定”。
参考:
推荐阅读
- node.js - 通过 npm 包共享 mongoose 模型
- android-broadcast - SDK api 级别低于 24 的 CameraX ImageCapture
- zsh - Zsh 从文件中读取填充关联数组导致奇怪的分离
- sql - 在当前行和上一行之间的范围内加入
- javascript - 如何获取号码,显示在外部网站上?
- javascript - 如何从控制台获取子元素的文本
- mediarecorder - Google 通过 MediaRecorder API 满足流媒体需求
- laravel - 使用 RouteServiceProvider.php 时注入模型中没有数据
- mysql - 自动检查 mysql 授权的方法
- ruby - 如何使用 ruby 在 zip 文件中添加新的文本文件