jquery - 如何在iframe中获取div的文本

时间:2013-06-25 12:36:09

标签: javascript jquery jsp iframe jquery-1.9

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分配值。

1 个答案:

答案 0 :(得分: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);