当前位置: 首页 > Web前端 > HTML

SAPUI5加载本地不存在的PDF文件时的错误处理

时间:2023-03-28 00:27:53 HTML

这个_onLoadListener函数是什么时候注册的?iframe完成加载后,它会触发加载事件注册处理程序:PDFViewer.prototype.onAfterRendering=function(){varfnInitIframeElement=function(){//不能使用attachBrowserEvent因为它将事件附加到组件根节点(this.$())//加载事件不会冒泡,所以它必须直接绑定到iframe元素varoIframeElement=this._getIframeDOMElement();oIframeElement.on("load",this._onLoadListener.bind(this));oIframeElement.on("error",this._onErrorListener.bind(this));loadevent:application/pdfisthesupportedmimetype:判断浏览器是否支持直接查看pdf文件的方法:点击loading报错后,bContinue标志为false,因为oTarget[0].contentWindow.document.embeds处为空这次:所以在这里进入else分支:在PDFViewer.prototype._renderErrorState中,将下载按钮设置为禁用:在函数PDFViewerRenderer.renderPdfContent中:进入else分支。GetErrorPlaceHolder:readisnull:这个属性是从哪里读取的?阅读此https://sapui5.hana.ondemand.com/resources/sap/m/messagebundle_en_US.properties文件。读入这个方法:this.renderErrorContent(oRm,oControl);该方法名称是动态植入的:getPlaceholderMessagePageControl当PDF查看器嵌入到sap.m.IconTabBar控件中时,切换tabsPDF文档时可能会重新加载失败。要解决此问题,可以:当用户在选项卡之间切换时,将PDF查看器的可见性设置为false。每次用户导航到不同的选项卡时,从DOM中删除PDF查看器iframe元素。可以通过调用sap.m.PDFViewer#invalidate方法删除PDF查看器元素。用户可用的辅助功能可能因安装的Adob??eAcrobatReader版本而异。控件支持的几种displayTypes:sap.m.PDFViewerDisplayType如果设置为链接,PDF查看器将显示为带有下载按钮的工具栏,可用于下载PDF文件。当调用#open方法时,用户可以在新选项卡中打开PDF文件或下载它。如果设置为嵌入,PDF查看器将嵌入到父容器中并显示PDF文档或由errorPlaceholderMessage属性定义的消息。如果设置为自动,PDF查看器的外观取决于所使用的设备:(1)在移动设备(手机、平板电脑)上,PDF查看器显示为带有下载按钮的工具栏。(2)在桌面设备上,PDF查看器嵌入在其父容器中。