0

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 页面。

现在我需要id=messageArea使用 jquery 在 jsp 中获取 div 的文本值。

我用了 ,

    var  intxnId = `ch54p3443`;

var sss = $("#ch"+intxnId).contents().find("#messageArea").text();
alert("sss : "+sss);

$("#ch"+intxnId)将是我的 iframe 选择器。

但是没有为变量赋值sss

4

1 回答 1

1

您需要首先在 iframe 中引用页面的 DOM 对象。由于跨域限制,您的 iframe 页面必须来自父页面的同一域。

我设置了一个小提琴来展示如何访问 iframe 页面的元素:

http://jsfiddle.net/ts5Z7/

基本上使用您的代码,这意味着:

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);
于 2013-06-25T12:50:15.030 回答