【问题标题】:Jquery search text in iframejquery在iframe中搜索文本
【发布时间】:2012-08-11 11:53:55
【问题描述】:

谁能帮忙?

我想在 iframe 中搜索一个字符串,例如。 我有一个名为 main.html 的页面,它有一个 iframe,并且 iframe(somesite.com) 的内容里面有一个字符串让我们说“Home”。 我想要发生的是有一个脚本,它将在 iframe“#com”中搜索字符串“home”,并会提醒一条消息,说明该字符串已找到。我希望用 jquery 而不是服务器端脚本来完成。请注意 somesite.com 是一个外部网站,我无法控制它。

ma​​in.html

<html>
<body>
<input type="button" id="search" value="search">
<iframe id="com" src="http://somesite.com"></iframe>
</body>
</html>

somesite.com

<html>
<body>
Home
</body>
</html>

抱歉英语不好,如果您有一些澄清,请发表评论。

【问题讨论】:

  • 以上参考资料将为您提供答案,但为了节省一些时间,鉴于somesite.com 是您自己的域之外的另一个域,由于同源策略,这将是不可能的。
  • @ChristoferEliasson:您的意思不是说“鉴于somesite.com 是您拥有的另一个域”吗? :)
  • @norfavrell 嗯,不是吗?谁拥有该域必须在这里无关紧要,还是您的意思是谁控制了该域?如果您控制该域后面的网络服务器,则可以实施 CORS,并绕过相同的源策略,但除此之外,鉴于它是您自己的域(您托管站点的域)之外的另一个域,它不会工作。
  • @ChristoferEliasson:抱歉,我实际上完全理解了您的评论错误(您看到我的就寝时间已经过去了)。请忽略我之前的评论,我不知道我在想什么。

标签: jquery string search iframe


【解决方案1】:

你可以试试:

$("#com").contents();

请注意,由于Same Origin Policy$.contents() 只能在源自同一域的 iframe 上执行。

以便您可以使用它来显示警报:

if($("#com").contents().text()search("someText")!=-1){
    alert("found");
}

【讨论】:

    【解决方案2】:

    这样的事情可能会有所帮助:

    var text = $('#com').contents().find('body').html();
    alert(text);
    

    $("body", $("#com").contents()).each(function(){
      if ($(this).text() == "Home") {
        alert('content found');
      }
    });
    

    【讨论】:

      猜你喜欢
      • 2011-08-09
      • 1970-01-01
      • 2019-09-13
      • 2012-08-05
      • 1970-01-01
      • 2020-05-12
      • 2016-05-26
      • 2022-10-16
      相关资源
      最近更新 更多