Как включить внешний HTML с JavaScript в iFrame - PullRequest
0 голосов
/ 29 сентября 2018

Я пытаюсь получить html с помощью javascript (с относительными путями внутри этого тега сценария javascript) с помощью службы отдыха и показать его в iFrame в моем приложении angularjs.

В основном мы интегрируемся с webfocus, и webfocus предоставляетСодержание HTML, когда мы вызываем службу отдыха.Этот HTML-контент содержит тег script, а этот тег script имеет относительные пути.поэтому, когда я пытаюсь привязать этот 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>

Я использовал эту ссылку, чтобы написать этот код.

1 Ответ

0 голосов
/ 29 сентября 2018

Это было решено, когда я добавил базовый тег в iframe как здесь Также использовал эти 3 строки внутри watch вместо назначения внутреннего html.

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