首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Javascript或jQuery警告iframe内部隐藏的文本

使用Javascript或jQuery警告iframe内部隐藏的文本
EN

Stack Overflow用户
提问于 2017-07-13 12:03:04
回答 2查看 601关注 0票数 0

在windows加载时加载iframe内部的代码。然而,内容的身体负荷后,按钮点击。和divid="headers"是隐藏的,但显示在另一个链接点击。

我想要的是访问和提醒一些Id点击搜索按钮。

如何使用JavascriptjQuery实现这一目标?

JSFiddle

以下是我的Html代码:

代码语言:javascript
复制
<html>
  <head>
    <title>TODO</title>
  </head>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

  <body>
    <div id="btn">
      <button id="btn-search">Search</button>
    </div>
    <div class="iframebox">
      <iframe id="messageiframe" srcdoc='
       #document

        <!DOCTYPE html>
        <html>

        <head>
          <title>test</title>
        </head>

        <body class="full-height">

          <div id="preview">
            <ul id="list">
              <li class="mail"><a href="https://mail.gmail.com">Gmail</a></li>
              <li class="search"><a href="https://www.google.com">Google</a></li>
              <li class="mail"><a href="https://mail.outlook.com">Outlook</a></li>
              <li class="search"><a href="https://www.bing.com">Bing</a></li>

            </ul>
          </div>

      <div id="all" style= "display: none;">
      <div id="headers">
      <font class="bold">Path</font>
      "Some path"
      <br>
      <font class="bold">doc Id</font>
      "Some Id"
      <br>
      <font class="bold">Recieved</font>
      "Me"
      </div>
      </div>

        </body>

        </html>'>
      </iframe>
    </div>
  </body>

</html>

以下是我的Javascript代码,它是不完整的:

代码语言:javascript
复制
$('#btn-search').on('click', function() {
   // slight delay 
   setTimeout(function(){
         var links = [];
     var iframe = document.getElementById('messageiframe');
     iframe.contentWindow.onload = function(){
     var innerDoc = iframe.contentWindow.document;
 };

   },100);
});

任何帮助都是非常感谢的。提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2017-07-13 12:37:39

这就是你想要的吗?更新小提琴

代码语言:javascript
复制
$('#btn-search').on('click', function() { 
 // slight delay 
a= $('#messageiframe').contents().find('#headers ').find('font:eq(1)')[0].nextSibling.nodeValue
alert(a)
setTimeout(function(){
     var links = [];
 var iframe = document.getElementById('messageiframe');
 iframe.contentWindow.onload = function(){
 var innerDoc = iframe.contentWindow.document;
};

},100);
});
票数 1
EN

Stack Overflow用户

发布于 2017-07-13 12:53:25

我在这里更新了你的小提琴:https://jsfiddle.net/qLrohftb/1/

我通过删除onload方法稍微修改了您的代码,这是不必要的。为了获得内部文档,我修改了您的代码以执行以下操作:

代码语言:javascript
复制
var innerDoc = iframe.contentDocument || iframe.contentWindow.document;

然后,一旦您拥有了文档,您所要做的就是使用innerDoc.getElementById或innerDoc.getElementByClassName或任何您想要使用的方法从iframe中检索值。因此,在这个示例中,我获得了className邮件的元素:

代码语言:javascript
复制
var element = innerDoc.getElementsByClassName("mail")[0];

然后,一旦我有了元素,我就会显示警告对话框。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45080066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档