首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IE中字符串变量的iframe的src

IE中字符串变量的iframe的src
EN

Stack Overflow用户
提问于 2018-02-06 19:50:54
回答 1查看 329关注 0票数 2

我有一个mean-stack网站。我想动态构造一个包含有效html字符串的变量,然后在iframe中呈现它。经过一些研究,我尝试了以下代码:(JSBin)

代码语言:javascript
复制
<html>
    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular.min.js"></script>
        <script src="https://cdn.rawgit.com/jugglinmike/srcdoc-polyfill/master/srcdoc-polyfill.min.js"></script>
    </head>
    <body ng-app="app" ng-controller="Ctrl">
        <iframe srcdoc="{{content | toTrusted}}"></iframe>
        <script>
            var app = angular.module('app', []);
            app.controller("Ctrl", ["$scope", function($scope) {
                $scope.content = "<b>hello</b>";
            }])
            app.filter('toTrusted', ['$sce', function($sce) {
                return function(text) {
                    return $sce.trustAsHtml(text);
                };
            }]);
        </script>
    </body>
</html>

它在Chrome上运行得很好,而在IE (例如IE 11)中就不能工作,即使我使用的是src-polyfill

有谁有解决方案吗?

EN

回答 1

Stack Overflow用户

发布于 2018-08-31 15:07:26

代码语言:javascript
复制
app.directive('iframeDoc', [ '$sce', function ($sce) {
                return {
                    restrict:"A",
                    scope:{
                        iframeDoc:'='
                    }, 
                    link: function(scope, elem, attrs) {
                        elem.attr("srcdoc", $sce.trustAsHtml(scope.iframeDoc));
                        // Check browser to support scrdoc.
                        var  isSupportSrcDoc= !!("srcdoc" in document.createElement("iframe"));
                        if(!isSupportSrcDoc){
                            var  jsUrl = "javascript: window.frameElement.getAttribute('srcdoc');";
                            if (elem[0].contentWindow) {
                                elem[0].contentWindow.location = jsUrl;
                            }
                            elem.attr("src", jsUrl);
                        }
                    }
                };
            }])

在html中:

代码语言:javascript
复制
<iframe iframe-doc="content"></iframe>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48642422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档