在Chrome IOS选项卡上打开base64 pdf

时间:2018-12-28 21:57:34

标签: javascript ios google-chrome pdf

我正在生成base64 pdf,我只需要在另一个iOS chrome标签中显示它即可。我有以下代码。

function mouseLeaveHandler() {
  // ...
}

function mouseEnterHandler() {
  // ...
}

$(".icon").on({
  mouseenter: mouseEnterHandler,
  mouseleave: mouseLeaveHandler
});

// add hoverbox on click
$('.icon').on('click', function() {
  var $iconPosition = $(this).position(); // position on clicked icon
  //console.log($iconPosition)
  // set hoverbox position based on current icon position and make visible
  $('.hoverbox').offset({
    top: $iconPosition.top + 10,
    left: $iconPosition.left
  }).css({
    "display": "block"
  });

  $('.icon').off('mouseenter mouseleave'); // remove mouseenter mouseleave functionality 
});

// remove hoverbox on click
$('.hoverbox').on('click', function() {
  // reset offset or it will accumulate after each click
  $('.hoverbox').offset({
    top: 0,
    left: 0
  }).css({
    "display": "none"
  });

  $(".icon").on({
    mouseenter: mouseEnterHandler,
    mouseleave: mouseLeaveHandler
  });

});

该代码允许我在iframe上显示pdf,但是当我这样做时,window.location.href是生成pdf的网址,而标签中的网址是about:blank。

因此,我决定在使用iframe的src在执行window.open的文档中编写一个脚本,但在另一个标签中得到一个空白页。

我要在chrome标签的url中查找data:application / pdf; base64,.....,该数据将向用户显示“打开方式”选项,他将具有,通过gmail或邮件等方式发送。实际上,我无法执行此操作,因为该网址是about:blank,并且不是有效的PDF base64链接。

我已经尝试过类似的方法 window.location,window.open,window.location.href,window.location.assign,以编程方式创建一个标签,然后单击该标签以更改href,然后打开about:blank标签就没有其他事情了。

当我尝试时,类似window.location.href ='data:application / pdf; base64,.....;返回false;' ,谷歌浏览器将url重定向到新标签,但返回false;最后一部分或网址中的句子,以致产生错误的pdf。

我不知道为什么不能以编程方式打开data:application .....,但是如果您像我在本文开头提到的那样创建一个iframe,然后用手指将iframe拖到另一个标签上,即可打开chrome标签页网址中的data:application......。

1 个答案:

答案 0 :(得分:0)

ChangeDetectorRef.detectChanges()