【问题标题】:Run console function across multiple pages跨多个页面运行控制台功能
【发布时间】:2016-03-16 16:28:17
【问题描述】:

有点难以解释,我不能 100% 确定这可以在控制台中实现,或者是否需要其他方法。

一步一步我想做的事:

  • 第 1 步 - 在锚点列表(for 循环)中单击锚点 i 并转到新页面
  • 第 2 步 - 单击第二页上的第一个锚点并转到第三页
  • 第 3 步 - 单击按钮并返回第一页。
  • 第 4 步 - 重复第 1-3 步,这次i 是第二个将您带到新页面的锚点。依此类推,直到第 1 页上的所有锚点都被点击,并且每个锚点都发生了第 2 步和第 3 步。

在我的脑海中,我可以一步一步地写这个,但我不确定如何以我想要的方式自动化这个过程。

这是我开始的代码:

// Step 1 - Page 1
var i = 0;

for (i = 0; i < $('a').length; i++) {
    $('a').eq(i).click();
}

// Step 2 - Page 2
$('a').eq(0).click();

// Step 3 - Page 3
$('button').click();

// Step 4 onward - Click next anchor in for loop and repeat step 2 and 3 until there are no anchors left on page 1 to click

任何帮助或指导都会很棒 - 我试过谷歌搜索,但我不完全确定我真正在寻找什么!

谢谢!

【问题讨论】:

    标签: javascript jquery console


    【解决方案1】:

    如果第 1、2 或 3 页是完全不同的文档(即从第 1 页转到第 2 页需要浏览器进行完全重定向),我能想到的唯一方法是在 URL 中携带要单击的锚点查询参数。例如:

    // page 1
    <a id="anchor1" href="www.example.com/page2?nextAnchor=anchor2>Anchor 1</a>
    <a id="anchor2" href="www.example.com/page2?nextAnchor=anchor3>Anchor 2</a>
    <a id="anchor3" href="www.example.com/page2>Anchor 3</a>
    

    如果您通过页面携带?nextAnchor=anchor2 直到返回第1 页,您可以在第1 页的脚本中获得nextAnchor 值,这样您就有了接下来必须单击的锚点的确切ID。重复该过程,直到您没有 nextAnchor 值(这发生在最后一个锚点中)。

    【讨论】:

      【解决方案2】:

      简单 - 虽然 HTTP 是无状态的,但您有 Cookie、URI 参数、套接字,如果您在 iframe 中打开位于同一域中的页面,您甚至可以使用 Web Worker。

      使用 URI 参数(即http://domain.com/?use_loop_script&amp;step=2&amp;current_anchor=3&amp;callback=click_link(x))可能是最简单的方法,只要您可以访问所有页面的脚本。

      然后您可以简单地在每个页面上插入一个函数并检查 URI 中是否存在 use_loop_script 并使用 URI 中设置的数字来执行您的函数 click_link(i) 或类似的东西。

      您需要使用 URI 来跟踪您的步骤以执行相应的功能(单击锚点、单击按钮等)

      iframe 被视为单独的文档,只要它们位于同一域中,您的 JavaScript 就可以检查该文档是否已准备好,并在需要时单击主页上的任何链接。因此,如果您只是访问 iframe 的 DOM,您甚至根本不需要 URI 参数,甚至不需要在后续页面上加载任何脚本。

      【讨论】:

      • 请记住,您需要在页面加载后运行此脚本,因此请将您的脚本放在页面底部或将其设置在 document.ready() (jQuery) 或等效文件中方法。
      猜你喜欢
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 2012-11-02
      • 1970-01-01
      • 1970-01-01
      • 2011-09-02
      • 1970-01-01
      • 2021-12-12
      相关资源
      最近更新 更多