【问题标题】:Refresh html Object by javascript通过javascript刷新html对象
【发布时间】:2015-12-08 15:51:37
【问题描述】:

我有一个对象:

<object id="pdfViewer" data="<?=$b64?>" type="application/pdf" title="document" width="100%" height="800"></object>

$b64 是这样的字符串:$b64 = "data:application/pdf;base64,base64 string".

在第一页加载时,pdf 显示在 chrome 和 firefox 中,而不是在 IE 中(没有错误)。

我用这个代码通过 ajax 刷新这个对象:

var $pdf = $("#pdfViewer");
$pdf.attr('data','data:application/pdf;base64,'+bin64Corrected);

它可以在 Firefox 上运行,而不是在 chrome 上运行(它在以前的版本中运行),仍然不能在 IE 上运行:D。

我正在寻找解决方案,试过这个:

$pdf.load('data:application/pdf;base64,'+bin64Corrected);

它没有工作。

感谢您的帮助!

编辑

它现在可以在 chrome 上运行,我不得不更改这段代码来修复 javascript 加载部分:

newObject = '<object id="pdfViewer" data="data:application/pdf;base64,'+bin64Corrected+'" type="application/pdf" title="document" width="100%" height="800"></object>';
$pdf.parent().append(newObject);

但它仍然无法在 IE 中工作,我可以让它工作的唯一方法是这样做:

<object id="pdfViewer" data="site/displayPdf" type="application/pdf" title="document" width="100%" height="800"></object>

site/displayPdf 是发送带有 PDF 标题的 pdf bin 数据的 url。

那么你们有谁知道在 IE 中基于 base64 字符串加载 pdf 对象是不可能的吗?

谢谢!

【问题讨论】:

标签: javascript php html pdf base64


【解决方案1】:

您是否尝试增加 JSON 返回的最大长度?

在您的 web.config 中,找到它或添加它(如果您没有):

<system.web.extensions>
<scripting>
  <webServices>
    <jsonSerialization maxJsonLength="86753090" />
  </webServices>
</scripting>

看看有没有帮助。

【讨论】:

  • 不,但它在 Firefox 上运行的事实让我认为这不是服务器问题,对吧?
  • 你至少试过了吗?
  • 它是用php编写的,所以json没有限制
猜你喜欢
  • 1970-01-01
  • 2017-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-30
  • 1970-01-01
  • 2020-11-18
相关资源
最近更新 更多