Ara*_*Fey 3 javascript javascript-objects
我需要一个列表/集合/数组/网站上的所有链接.目前我正在使用window.content.document.links,但这并不适用于所有网站.(那些网站产生一个空数组.)(例如:dctp.ws)我猜这是因为那些网站包含框架.有没有办法访问框架内的链接?
此外,这是一个FireGestures脚本,因此它将"在浏览器内"运行.我不想下载网站或类似的东西,因为浏览器已经下载并解析了它.
您可以使用以下方式从文档中获取NodeList所有a元素getElementsByTagName:
var list = document.getElementsByTagName("a");
Run Code Online (Sandbox Code Playgroud)
因此,您可以为主文档以及文档中的所有帧执行此操作.要访问帧,可以使用window.frames伪阵列.每个条目都是该window框架的对象,因此:
var listInFrame = window.frames[n].document.getElementsByTagName("a");
Run Code Online (Sandbox Code Playgroud)
因此,创建一个空白数组,从文档本身添加元素,然后循环通过窗口添加其文档中的链接.
我不熟悉FireGestures,因此我不知道同源策略是否适用于它运行的脚本.
更新:从您的评论如下,这听起来像FireGesture脚本是受SOP.因此,您将无法在FireGestures脚本中直接访问来自不同来源的文档内容.
您可以将FireGestures和GreaseMonkey结合起来.GreaseMonkey有一个API调用,GM_xmlhttpRequest绕过SOP - 但请注意它将是另一个GET,你不会读取已经在内存中的页面的副本,你说你想做.不幸的是,完全有可能你可能无法用FireGestures做你想做的事.您可能必须完全编写自己的加载项(并让它请求相关权限).