您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Automatically opens the 'Sort/Filter' dropdown and selects the 'Lowest Fare' option on Amtrak's ticket search results.
- // ==UserScript==
- // @name Amtrak Lowest Fare Default with Dropdown
- // @namespace namespace_amtrak_lowest_fare_dropdown
- // @version 1.0
- // @description Automatically opens the 'Sort/Filter' dropdown and selects the 'Lowest Fare' option on Amtrak's ticket search results.
- // @author Andrew Lakkis
- // @license MIT
- // @match https://www.amtrak.com/*
- // @grant none
- // ==/UserScript==
- (function() {
- 'use strict';
- var dropdown;
- var currentButton;
- // Function to click the 'Sort/Filter' dropdown
- const openSortFilterDropdown = () => {
- const sortOptionsInterval = setInterval(() => {
- dropdown = document.querySelector('.ng-star-inserted.p-3.align-items-center.d-flex.sort-and-filter-btn');
- currentButton = document.querySelector('[amt-auto-test-id="search-results-current-sortby-filter"]');
- if (dropdown && !(currentButton.innerText === 'Lowest Fare')) {
- dropdown.click(); // Simulate a click to open the dropdown
- setTimeout(selectLowestFare, 500); // Adjust time as needed based on site behavior
- clearInterval(sortOptionsInterval); // Stop the interval
- }
- }, 100);
- };
- // Function to select the 'Lowest Fare' option
- const selectLowestFare = () => {
- // Wait for the sort options to be available in the DOM after opening the dropdown
- const sortOptionsInterval = setInterval(() => {
- const sortOptions = document.querySelector('mat-radio-group[formcontrolname="sortBy"]');
- if (sortOptions) {
- clearInterval(sortOptionsInterval);
- const lowestFareOption = sortOptions.querySelector('[for="mat-radio-5-input"]');
- if (lowestFareOption) {
- // Simulate a click on the 'Lowest Fare' radio button
- lowestFareOption.click();
- dropdown.click();
- }
- }
- }, 100);
- };
- // Run the function when the DOM is fully loaded
- const dropdownOpened = openSortFilterDropdown();
- if (dropdownOpened) {
- // Wait a brief moment for dropdown animations and options to become visible
- setTimeout(selectLowestFare, 500); // Adjust time as needed based on site behavior
- }
- })();