两页上的 Javascript

Posted

技术标签:

【中文标题】两页上的 Javascript【英文标题】:Javascript on two pages 【发布时间】:2018-07-19 10:55:14 【问题描述】:

我正在尝试创建一个 jquery 脚本。

脚本需要:

1- 单击列表上的特定链接(按钮)以更改页面

2- 填写页面上输入的文字

3- 有效

(4-和循环...)

问题是,当我更改页面时,脚本不会在第二页上执行。

这是我的脚本:

window.allButtons = $('a[href^="/discussions/"]')

if ($(allButtons[2]).text()=="Afficher cette discussion")
    allButtons[2].click();


setTimeout(function()



    let messages = [
    'Bonjour, je suis désolé mais j\'ai déjà envoyé mon colis avec weeship'
    ];
    function getMessage() 
       return messages[Math.floor(Math.random() * messages.length)];
    

    $('#message_content').val(getMessage);

    // setTimeout(function() 
    //  $('input.button.button--tertiary').click();
    // ,1000);

,1000);

请问有什么解决办法?

【问题讨论】:

“换页”是什么意思?除非您有某种允许您在多个页面上执行代码的 Chrome 插件,或者您正在使用 puppeteer,否则实际上没有办法导航到另一个页面并在该页面之前执行代码 我正在使用 chrome 控制台。如您所见,脚本单击按钮,脚本的以下内容不会在其他页面上执行。我该如何解决这个问题?使用 Puppeteer? 使用 puppeteer 非常简单,是的。但是如果你通过控制台运行它,为什么不分步执行呢?喜欢先点击按钮再引入循环? 因为我想用循环自动化脚本以便回答列表中的每个人。 我需要点击这里:prntscr.com/k8dos5,然后在循环中填写这个输入prntscr.com/k8dp1f 【参考方案1】:

您可以使用Session storage 来保存来自不同页面的数据。

在您离开页面之前,您可以设置一个值作为指标或您实际想要的值,如下所示:

sessionStorage.setItem('key', 'value');

一旦第二个页面加载,就可以从会话存储中检索必要的信息

// Get saved data from sessionStorage
var data = sessionStorage.getItem('key');

您现在可以应用您的逻辑。例如,如果值 wasRedirected 为 true,则表示他来自您的重定向,因此您可以检查您是否存储了键 theInputValue 的值并将其设置为输入。

【讨论】:

非常感谢 Anastasios,关于我的脚本,我需要单击此处:prntscr.com/k8dos5,然后在循环中填写此输入 prntscr.com/k8dp1f。如何集成您的解决方案? @theovogg 你是什么意思循环,你从我的建议中不明白的到底是什么?我提供了一种在更改页面时保留数据的方法。从您的问题或评论中,我无法理解您想做什么。如果您需要更多说明,请重新编写您的问题并添加您想要实现的整个流程。

以上是关于两页上的 Javascript的主要内容,如果未能解决你的问题,请参考以下文章

如何将组件导入两页?

如何使用qt上的按钮打开同一窗口的其他选项卡?

C# - 每页上的 itextSharp 小计

Winforms 标签页上的关闭按钮

如何管理一页上的许多查询?

text 单页上的作者生物和图像