0

我正在尝试使用rest服务获取带有javascript的html(在此javascript脚本标签内具有相对路径)并将其显示在我的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>

我使用此链接编写此代码。

4

1 回答 1

0

当我在 iframe 中添加基本标记时,它得到了解决,因为这里 还在 watch 中使用了这 3 行而不是分配内部 html。

 iframe.contentWindow.document.open();
                iframe.contentWindow.document.write($sce.trustAsHtml(scope.content));
                iframe.contentWindow.document.close()
于 2018-09-29T20:11:45.057 回答