如何在iFrame中使用javascript包含外部html

时间:2018-09-29 05:37:30

标签: angularjs iframe innerhtml webfocus

我正在尝试使用rest服务使用带有javascript的html(此javascript脚本标记内的相对路径)获取html,并将其显示在我的angularjs应用程序的iFrame中。

基本上,我们正在与webfocus集成,并且在调用rest服务时,webfocus提供html内容。该html内容中包含脚本标签,并且此脚本标签具有相对路径。因此,当我尝试将html / javascript绑定到iFrame的contentWindow.document.body时,出现相对路径问题。

任何帮助将不胜感激。

Angularjs指令如下。

.directive("preview", ['$sce',function ($sce) {
    function link(scope, element) {
        var iframe = document.createElement('iframe');
        iframe.setAttribute("id", "ifWebFocusContent");
        iframe.setAttribute("name", "nameWebFocusContent");

        var element0 = element[0];
        element0.appendChild(iframe);
        var body = iframe.contentWindow.document.body;
        //var body = iframe.document.body;

        scope.$watch('content', function () {                
            body.innerHTML = $sce.trustAsHtml(scope.content);
        });
    }

    return {
        link: link,
        restrict: 'E',
        scope: {
            content: '='
        }
    };
}])

HTML代码为<preview content="reportHtml"></preview>

I used this link to write this code.

1 个答案:

答案 0 :(得分:0)

当我在iframe中将基本标记添加为here时,此问题已解决 还在手表内部使用了这3行代码,而不是分配内部html。

 iframe.contentWindow.document.open();
                iframe.contentWindow.document.write($sce.trustAsHtml(scope.content));
                iframe.contentWindow.document.close()