此jsp
位于动态生成的iframe
内,
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!-- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="<%=request.getContextPath() %>/css/chat.css">
<title>Heart JSP page</title>
</head>
<body>
<div id="messageArea" class="divBorder">
<% String intxnId = request.getParameter("intxnId"); %>
Chat Interaction id is : ?<%= intxnId%>
</div>
<div id="enterMessage" class="divBorder">
Your message Area
</div>
</body>
</html>
我的iframe
及其id
是动态生成的。在Iframe中我插入了上面的jsp页面。
现在我需要使用jquery在jsp中获取带有id=messageArea
的div的文本值。
我用过,
var intxnId = `ch54p3443`;
var sss = $("#ch"+intxnId).contents().find("#messageArea").text();
alert("sss : "+sss);
$("#ch"+intxnId)
将是我的iframe选择器。
但是没有为变量sss
分配值。
答案 0 :(得分:1)
您需要先在iframe中引用页面的DOM对象。由于跨域限制,您的iframe页面必须来自父页面的同一域。
我已经设置了一个小提示,以展示如何访问iframe页面的元素:
基本上使用您的代码,这意味着:
var intxnId = `ch54p3443`;
var frameRef = $("#ch"+intxnId)[0];
var frameDocument = frameRef.contentWindow ? frameRef.contentWindow.document :frameRef.contentDocument;
var sss = $(frameDocument).find("#messageArea").text();
alert("sss : "+sss);