如何转储 JS 数组...(boommarklet?)

发布于 2024-08-06 10:28:44 字数 525 浏览 3 评论 0原文

我使用的网站上的一个页面正在劫持我的一些数据。一旦我登录到网站并导航到正确的页面,我需要的数据就在数组 eeData[] 中 - 它有 720 个元素长(给定日期每 2 分钟一次)。

我很高兴简单地开发一个小书签来获取数据,而不是模拟对底层 json 供应商的请求,因为它每天只有一次,最好是 XML 或 CSV 文件。

任何指向示例代码或提示的指针都会有所帮助。

我发现了一个书签,它基于这个脚本 完成了部分工作 - 但我我没有跟上任何潜在的 JS 文件 IO 的速度,看看是否可以诱导数据文件“下载”,或者将其弹出到我可以复制/粘贴的新窗口中。

A page on a site I use is holding some of my data hostage. Once I have logged into the site and navigated to the right page, the data I need is in the array eeData[] - it is 720 elements long (once every 2 minutes of a given day).

Rather than simulate the requests to the underlying stuff json supplier and since its only once a day, I am happy to simply develop a bookmarklet to grab the data - preferably as a XML or CSV file.

Any pointers to sample code or hints would help.

I found a bookmarklet here that is based on this script that does part of this - but I am not up to speed on any potential JS file IO to see if it is possible to induce a file "download" of the data, or pop it opn in a new window I can copy / paste.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

万劫不复 2024-08-13 10:28:44

eeData 中对象的数据类型是什么?在一般情况下,将任意 Object 转换为有用的序列化是不可行的;你必须编写自己的 JS 函数来检查对象并挑选出你想要序列化为任何格式的属性。

但如果它们是用作映射的简单 ArrayObject ,那么导出它们的最快方法可能是 JSON。使用具有本机 JSON 的浏览器(例如 Firefox 3.5、IE8)和此书签:

javascript:document.body.innerHTML='<textarea id="t"></textarea>';void(document.getElementById('t').value=JSON.stringify(eeData));

然后将数据复制并粘贴到文本区域之外。

What are the datatypes of the objects in eeData? Converting arbitrary Object​s to a useful serialisation isn't doable in the general case; you would have to write your own JS function to inspect the objects and pick out the properties you wanted to serialise to whatever format.

But if they're simple Array​s and Object​s used as mappings, probably the quickest way to export them would be JSON. Use a browser with native JSON (eg. Firefox 3.5, IE8) and this bookmark:

javascript:document.body.innerHTML='<textarea id="t"></textarea>';void(document.getElementById('t').value=JSON.stringify(eeData));

then copy-and-paste the data out of the textarea.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文