我正在尝试编写一个从以下html页面中提取网站的tampermonkey脚本:
<html>
<head></head>
<body>
<iframe src="http://some-url.com/ll" title="test" name="ws_block" frameborder="0" scrolling="no" style="border:0px; width:100%; height: 320px;">
<html>
<head>
<!-- A particular character set can be specified by assigning "charset" -->
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Title</title>
<link rel="stylesheet" href="/en/Custom/blockStyle.css" type="text/css">
</head>
<body>
<div class="wrapper">
<div id="logo"><img src="/banner.gif" alt="[ORG]" border="0"></div>
<div class="block-body">
<div class="textLine">
<div class="ws-label label" data-strid="url"><script> ws.print("url"); </script>Address:</div>
<div class="text">https://www.my_website.com/</div>
</div>
<div class="textLine">
<div class="ws-label label" data-strid="category"><script> ws.print("category"); </script>Category:</div>
<div class="text">My-Website</div>
</div>
</div>
</div>
</body>
</html>
</iframe>
</body>
</html>
我正在尝试提取我的网站链接:
https://www.my_website.com/
答案 0 :(得分:2)
window
对象有一个frames
数组,其中包含您网页中包含的所有iframe,因此您可以对其进行迭代并尝试获取您的内容。
如果你只有一个iframe,那么window.frames[0].getElementsByClassName(classname)
就可以了。
请查看MDN
上的文档答案 1 :(得分:0)
出于安全原因,您无法通过javascript访问其他来源(域)iframe!
你应该通过像php这样的服务器端语言来实现它!
如果域和iframes src在一个来源中,您可以像r1verside's answer一样使用:
window.frames[0].getElementsByClassName(classname)
答案 2 :(得分:0)
有很多不同的方法可以在DOM中找到不涉及使用其ID的元素。
您需要找到元素的其他识别功能并使用它。
例如:
document.querySelector("iframe");
...将在文档中返回第一个 iframe。
之后,如果你通过id得到iframe,你将使用完全相同的方法。