因此,我们的想法是制作Chrome扩展程序,在网络电子邮件客户端中搜索电子邮件地址,然后从数据库中显示有关客户的信息。
我设法找到的是获取当前标签html源代码: Getting the source HTML of the current page from chrome extension
然后使用split,regex或其他东西来获取电子邮件,只需调用一些解析信息的php脚本。一切都会很棒,但我们使用的是“Squirrel Mail”,它使用iframe,所以我得到的只是一些标题和iframe链接。
有人能指出我正确的方向吗?也许有可能获得标签文本而不是html源代码?从来没有任何使用镀铬扩展的经验..任何使其更快的帮助都会很棒。我显然知道我想要的电子邮件的某个位置。
Casraf 几乎排序了我在这种特定情况下只是因为它没有id选择器而陷入困境。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html><head>
<meta name="robots" content="noindex,nofollow">
<title>SquirrelMail</title>
</head><frameset cols="150, *" id="fs1">
<frame src="left_main.php" name="left" frameborder="1">
<frame src="right_main.php" name="right" frameborder="1">
</frameset>
</html>
答案 0 :(得分:1)
我们说你的iframe有一个你可以使用的选择器。
var iframe = document.querySelector('#iframe'),
doc = iframe.contentDocument || iframe.contentWindow.document;
然后,您可以使用JS在iframe的页面中查找元素并从中获取内容。例如,如果在iframe的HTML中有<span class="my-email-selector">email@address.com</span>
,则可以执行以下操作:
var email = doc.querySelector('.my-email-selector').innerText;
现在将包含电子邮件。
请注意doc
变量是document
类型,因此它应该包含所有常规文档方法(location
,querySelectot[All]
等)
修改:由于您拥有frame
而非iframe
,并且他们拥有name
属性,因此很容易访问它们:
var frame_left = window.frames['left'],
frame_right = window.frames['right'];