javascript - AngularJS PDF 查看器无法在 IE 中运行

标签 javascript angularjs internet-explorer pdf

我正在尝试显示一个 PDF,它的 url 基于 agularjs 变量。我让它适用于谷歌浏览器,但它似乎不适用于 IE。我已经尝试将 url 编码到页面中,并且效果很好。这是显示我的结果的插件:http://plnkr.co/edit/gFfGQCzAfmf2zf5C2Bpc?p=preview

Please note, the only way to see my issue is if you use plunker in IE not Chrome. And my IE and Adobe are both up to date.

我的理论是 Adob​​e 将 url 作为 {{documentSrc}} 启动,然后 Angular 运行并用值替换该变量,然后 Adob​​e 永远不会识别它。这是真的?如果是这样,我该如何解决?如果不是,那是怎么回事?

代码

<object data="{{documentSrc}}" type="application/pdf" width="100%" height="700px"></object>

最佳答案

为对象元素使用指令。您将需要创建一个 watch 来检测数据和类型绑定(bind)的变化。还有一个问题是,如果您打算多次更改绑定(bind),则需要跟踪您的指令元素。

参见此处:http://embed.plnkr.co/fFtkcG/preview

 <object-reloadable>No document selected</object-reloadable>
.directive('objectReloadable', function() {
  var link = function(scope, element, attrs) { 
    var currentElement = element;

    scope.$watch('documentSrc', function(newValue, oldValue) {
      if (newValue !== oldValue) {
        scope.documentSrc = newValue;
        var html = '<object type="application/pdf" data="' + newValue + '"></object>';
        var replacementElement = angular.element(html);
        currentElement.replaceWith(replacementElement);
        currentElement = replacementElement;
      }
    });
  };

  return {
    restrict: 'E',
     scope: false,
    link: link
  };  
})

关于javascript - AngularJS PDF 查看器无法在 IE 中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33680239/

相关文章:

javascript - 如何处理 IE select onchange 和 ajax 请求

javascript - 此表达式不可调用类型 'String' 没有调用签名

javascript - 如何随机化图像的顺序?

javascript - 无法使用 slim 框架 3 接收来自 ajax post 请求的响应

javascript - 如何使用@定义的指令范围创建ng-if?

html - 外部 CSS 文件未加载链接标记

javascript - 如何消除angularjs中某些单元格的悬停效果

javascript - GAE/Angular 应用程序中 window.init() 的无限循环

javascript - 将用户输入从 azerty 键盘键自动转换为 javascript 中的阿拉伯字符

css - 没有合适的解决方案来解决背景图片上的 IE 可点击性问题