在windows加载时加载iframe内部的代码。然而,内容的身体负荷后,按钮点击。和div与id="headers"是隐藏的,但显示在另一个链接点击。
我想要的是访问和提醒一些Id点击搜索按钮。
如何使用Javascript或jQuery实现这一目标?
以下是我的Html代码:
<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代码,它是不完整的:
$('#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);
});任何帮助都是非常感谢的。提前谢谢。
发布于 2017-07-13 12:37:39
这就是你想要的吗?更新小提琴
$('#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);
});发布于 2017-07-13 12:53:25
我在这里更新了你的小提琴:https://jsfiddle.net/qLrohftb/1/
我通过删除onload方法稍微修改了您的代码,这是不必要的。为了获得内部文档,我修改了您的代码以执行以下操作:
var innerDoc = iframe.contentDocument || iframe.contentWindow.document;然后,一旦您拥有了文档,您所要做的就是使用innerDoc.getElementById或innerDoc.getElementByClassName或任何您想要使用的方法从iframe中检索值。因此,在这个示例中,我获得了className邮件的元素:
var element = innerDoc.getElementsByClassName("mail")[0];然后,一旦我有了元素,我就会显示警告对话框。
https://stackoverflow.com/questions/45080066
复制相似问题