-
-
Save jithurjacob/4d572b6e6be193650cdf8bb28536326a to your computer and use it in GitHub Desktop.
| var jq = document.createElement('script'); | |
| jq.src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"; | |
| document.getElementsByTagName('head')[0].appendChild(jq); | |
| // ... give time for script to load, then type (or see below for non wait option) | |
| //localStorage.setItem("playbackRate", 2.1); | |
| console.log('[start]Pluralsight Continuous Play'); | |
| window.setInterval(function(){ | |
| $('#next-module').click(); | |
| },30000); |
Updated PluralSight Auto Play Behavior
const autoClickButton = (xpath) => {
// Checks if an element is visible on the page.
const isVisible = (element) => {
const style = window.getComputedStyle(element);
return style.display !== "none" && style.visibility !== "hidden" && style.opacity !== "0";
};
// Set up a MutationObserver to monitor DOM changes.
const observer = new MutationObserver(() => {
const button = document.evaluate(
xpath,
document,
null,
XPathResult.FIRST_ORDERED_NODE_TYPE,
null
).singleNodeValue;
// If the button exists and is visible, click it.
if (button && isVisible(button)) {
button.click();
console.log(`Button clicked for XPath: ${xpath}`);
}
});
// Start observing the DOM for changes.
observer.observe(document.body, {
childList: true, // Monitors addition or removal of child nodes.
subtree: true, // Monitors changes in all descendant nodes.
});
};
// Clicks 'Next Lesson' button dynamically.
autoClickButton("//button[@aria-label='Next Lesson']");
// Clicks 'Start module' button dynamically.
autoClickButton("//button[contains(text(), 'Start module')]"); This script is designed to dynamically and repeatedly click buttons on a webpage with frequently updating content, such as in Single Page Applications (SPA). It leverages a MutationObserver to track changes in the DOM and react only when necessary. Here's what it does:
-
Listens for DOM changes:
It uses aMutationObserverto detect when the specified button is added to or reappears in the DOM. -
Validates button visibility:
Before clicking, it ensures the button is visible on the page (i.e., not hidden, transparent, or removed). -
Continuously handles dynamic content:
The script works persistently, clicking the button each time it appears or reappears. -
Reusability:
TheautoClickButtonfunction accepts anXPathselector, making it adaptable to various buttons. -
Why is it more efficient than
setInterval?
UnlikesetInterval, which repeatedly executes code at fixed intervals regardless of whether a button appears,MutationObserverreacts only when the DOM changes. This minimizes CPU usage, avoids unnecessary checks, and ensures the script works in sync with the dynamic updates of the page.
Enjoy it 😊
Maximize your learning experience with ease!
I’m thrilled to introduce Pluralsight™ Autoplay, designed to enhance your productivity on Pluralsight.
What does it do?
This extension adds an Auto Play feature for Pluralsight courses, providing a seamless, uninterrupted learning experience.
Key Benefits:
1.- Automatically advances to the next video in a course.
2.- Keeps your learning flow smooth and distraction-free.
3.- Helps you stay focused and engaged during long study sessions.
4.- Ideal for learners who want a hands-free, continuous experience.
Try it now and take your productivity to the next level: Pluralsight™ Autoplay
Your feedback means the world to me! Let me know how it works for you. 🚀
Here is my own spin on the code. @mayanknc @JarkkoLaiho @John-Blair
This should work since it checks for the key words.