【问题标题】:Can a javascript code continue running throughout different web pages?javascript 代码可以在不同的网页中继续运行吗?
【发布时间】:2019-06-20 18:50:26
【问题描述】:

我正在尝试编写一个在不同网页中运行的 javascript。脚本应该在搜索栏中输入一些内容,单击搜索,单击结果,然后将每个结果文本保存到一个数组中。它看起来像:

function returnresults(queries){
  arrayofcontent = [];

  for each query {
    type query in searchbar;
    submit search;
    result[0].click(); // go to first result
    arrayofcontent.push(pagecontent.innertext);
  }
  
  return arrayofcontent;
}

问题是在脚本单击搜索后脚本似乎停止了,这让我认为脚本在移动到另一个页面时会自行卸载,即使我是直接在 Google 的 javascript 控制台中输入脚本铬合金。有谁知道如何告诉谷歌浏览器在页面之间移动后继续运行脚本?

【问题讨论】:

  • 这是不可能的。但是您可以通过使用浏览器的本地存储并将您的数据保存到本地存储中并在其他页面上从本地存储中获取它来实现这一点。
  • 既然您标记了这个 [browser-automation]:使用任何可用的可编写脚本的自动化工具,这些工具从外部引导浏览器,而不是在网页内部运行(哪些脚本即使在浏览器控制台输入)。
  • 谢谢鲑鱼、伯格、斯科特和玛纳斯

标签: javascript browser-automation


【解决方案1】:

简短回答:不。

当您检查浏览器选项卡中发生的事情(包括使用控制台)时,您只能检查该选项卡中加载的内容。如果您导航到该选项卡中的另一个页面,则上一页在内存中的所有内容都将被丢弃并加载新的页面内容。

您需要存储脚本的状态,然后在另一个页面上检索该状态。存储状态可以通过多种不同方式完成(cookieslocalStoragesessionStorage、服务器端数据库),您需要决定哪种方式适合您的架构和用例。

【讨论】:

    【解决方案2】:

    如果您想将脚本注入不同的网页,您可以通过开发 chrome 扩展来实现。扩展可以根据您的逻辑注入您的脚本

    这里是开始的链接

    https://developer.chrome.com/extensions/getstarted

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-15
      • 1970-01-01
      相关资源
      最近更新 更多