我目前一直困在一个看起来很像this的问题,但是在我的情况下这个问题的解决方案不起作用。
我有一个tagx,其中我有一个iframe,我在其中使用jQuery将src属性设置为某个值,具体取决于所点击的超链接。标签由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>
答案 0 :(得分:5)
您需要做的是在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>
答案 1 :(得分:0)
在<!doctype html>
dom中嵌入的youtube中发生了这种情况。
<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>
答案 2 :(得分: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">some text</iframe>