使用 JavaScript bookmarklet 获取 Ajax HTML 元素

问题描述

我是 bookmarklet 的新手,不确定可以做多少。 我想从网页中获取一些元素,但在我单击某些按钮之前不会显示内容。 我可以使用以下非常简单的代码在静态网页上获取一些内容,但是否可以通过创建书签来获取更深层次的元素。

是否可以使用 javascript bookmarklet 获得深红色圆圈部分?我能够使用 python 模拟用户操作来做到这一点,但我想要更快地获取元素。 请分享一些我可以寻找的方向,似乎可以创建书签并快速完成许多事情。

javascript: (function() {
    var v = document.getElementById("view_shade").value ;
    alert(v);
})();

第一次进入页面时的html:

First time enter the page

点击一些按钮后添加内容,红色部分是我想要获取的元素

After click some buttons

解决方法

当然,您可以获得 HTML 的任何部分。

例如,您可以将 querySelectorAll 与 DOM attributes 属性结合使用。

javascript:(function(){
    var v = document
                    .getElementById('view_shade')
                    .querySelectorAll('[data-guid]')[0]
                    .attributes["data-guid"]
                    .value;
    alert(v);
})();
<table border="1">
    <thead></thead>
    <tbody></tbody>
        <tr id="view_shade">
            <td data-guid="BCC-RED">one</td>
            <td>two</td>
        </tr>
</table>

根据您当前问题的文本,我认为您不需要 AJAX 来解决此特定问题。

但是在某些情况下,通过书签创建 AJAX 也是可行的,但是,这可能是一个单独的问题,可能取决于 URL、某些服务器问题(例如 CORS 等)等。

AJAX 的一些基础知识:How to make an AJAX call without jQuery?