两页上的 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的主要内容,如果未能解决你的问题,请参考以下文章