HTML после iframe игнорируется - PullRequest
4 голосов
/ 23 августа 2011

В настоящее время я застрял в проблеме, которая во многом похожа на эту , но решение этой проблемы в моем случае не сработало.

У меня есть tagx, в котором у меня есть iframe, в котором я устанавливаю атрибут src, используя jQuery, на определенное значение в зависимости от нажатой гиперссылки. Тег встроен в файл jspx, в основном состоящий из Springform. Все работает хорошо, за исключением того, что код, написанный непосредственно под iframe, не отображается браузером (проверено в Firefox и Chrome, не уверен для других браузеров). Даже код, написанный в jspx непосредственно под тэгом (который встраивает тэг в iframe), не отображается.

containerCreator.jspx:

<div xmlns:c="http://java.sun.com/jsp/jstl/core"
    xmlns:form="http://www.springframework.org/tags/form"
    xmlns:jsp="http://java.sun.com/JSP/Page"
    xmlns:roo="urn:jsptagdir:/WEB-INF/tags"
    xmlns:olo_elem="urn:jsptagdir:/WEB-INF/tags/olo/admin/element"
    xmlns:spring="http://www.springframework.org/tags" 
    id="elementen_base"
    version="2.0">

    <spring:url value="/admin/element/saveContainerElementBean" var="save"/>
    <form:form action="${save}" method="POST" modelAttribute="containerElementBean">
        <input type="submit" value="sla op"/>
        <olo_elem:containerCreator path="${path}" containerId="${id}"/>
        <p>I'm not visible</p>
    </form:form>
</div>

containerCreator.tagx:

<jsp:root xmlns:c="http://java.sun.com/jsp/jstl/core"
    xmlns:fn="http://java.sun.com/jsp/jstl/functions"
    xmlns:jsp="http://java.sun.com/JSP/Page"
    xmlns:form="http://www.springframework.org/tags/form"
    xmlns:olo_elem="urn:jsptagdir:/WEB-INF/tags/olo/admin/element"
    xmlns:spring="http://www.springframework.org/tags" version="2.0">

    <jsp:directive.attribute name="containerId" type="java.lang.Long"   required="false" description="id van de container die wordt bevat, null indien nog geen container is gebonden" />
    <jsp:directive.attribute name="path"        type="java.lang.String" required="false" description="pad waarin het id van een nieuw containerelement wordt gezet"/>

    <spring:url value="/admin/element/editContainer/${containerId}" var="existingLink" />
    <spring:url value="/admin/element/newContainer"                 var="newLink" />

    <script type="text/javascript">
        function openExisting(){
            $('#editor').attr('src', '${existingLink}');
            $("#editor").show();
        }

        function openNew(){
            $('#editor').attr('src', '${newLink}');
            $("#editor").show();
        }

        $(document).ready(function(){
            $("#editor").hide();
        });
    </script>

    <c:choose>
        <c:when test="${not empty id}">
            <a onclick="javascript: openExisting()">Bewerk ContainerElement</a>
        </c:when>
        <c:otherwise>
            <c:choose>
                <c:when test="${not empty path}">
                    <input type="hidden" name="${path}" id="path" value=""/>
                    <a onclick="javascript: openNew()">Maak ContainerElement</a>
                </c:when>
                <c:otherwise>
                    Error: Geef containerId of tag op!
                </c:otherwise>
            </c:choose>
        </c:otherwise>
    </c:choose>

    <iframe id="editor" style='width: 800px; height: 800px' name="iframeId" frameborder="0"> </iframe>
    <p>I'm not visible</p>
</jsp:root>

Ответы [ 3 ]

5 голосов
/ 24 августа 2011

Что вам нужно сделать, это вставить комментарий между тегами iframe.Некоторые браузеры не допускают пустые теги.Вставка комментария в эти теги, вероятно, решит вашу проблему.Смотрите пример ниже:

    <iframe id="editor" style='width: 800px; height: 800px' name="iframeId" frameborder="0"><!-- //required for browser compatibility --></iframe>
    <p>I am visible!</p>
</jsp:root>
0 голосов
/ 10 ноября 2014

Добавьте текст внутри iframe. Это будет работать.

<iframe id="ytplayer" type="text/html" width="640" height="390"
    src="http://www.youtube.com/embed/M7lc1UVf-VE?autoplay=1&origin=http://example.com"
    frameborder="0">some text</iframe>
0 голосов
/ 22 мая 2014

Это случилось со мной из YouTube, встроенного в <!doctype html> дом.

<iframe id="ytplayer" type="text/html" width="640" height="390"
    src="http://www.youtube.com/embed/M7lc1UVf-VE?autoplay=1&origin=http://example.com"
    frameborder="0"/>

Хитрость заключалась в том, чтобы добавить закрывающий тег </iframe>, а не самозакрывающийся:

<iframe id="ytplayer" type="text/html" width="640" height="390"
    src="http://www.youtube.com/embed/M7lc1UVf-VE?autoplay=1&origin=http://example.com"
    frameborder="0"></iframe>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...