【问题标题】:jquery - how to get text of a div inside a iframejquery - 如何在 iframe 中获取 div 的文本
【发布时间】:2013-06-25 12:36:09
【问题描述】:

这个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没有赋值。

【问题讨论】:

  • 这个 iframe 在同一个域上吗?你的 javascript 控制台会抛出警告吗?
  • @Alex 它不会抛出任何错误。
  • 也不是跨域的? (我的意思是 iframe 中的内容与主页来自同一个域)
  • @Balint 能否提供解决方案代码?

标签: javascript jquery jsp iframe jquery-1.9


【解决方案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);

【讨论】:

  • 感谢您的回复。但没有帮助!
  • 您还需要什么吗?为什么不帮忙。我想帮忙。
猜你喜欢
  • 2014-01-31
  • 2019-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多