Skip to content

refactor: simplify SubmitLink selection by querying all anchors and finding by text#876

Merged
boomzero merged 3 commits intodevfrom
boomzero/SubmitLink
Oct 7, 2025
Merged

refactor: simplify SubmitLink selection by querying all anchors and finding by text#876
boomzero merged 3 commits intodevfrom
boomzero/SubmitLink

Conversation

@boomzero
Copy link
Member

@boomzero boomzero commented Oct 7, 2025

What does this PR aim to accomplish?:

Simplify and stabilize how we select the Submit link on the problem page.
Previously we relied on a brittle chain of nth-child() selectors with multiple null checks, which repeatedly broke whenever the DOM structure changed (see #869, #861).
This PR queries all anchors within the container and selects the one whose text is '提交', making the code resilient to DOM reordering and easier to maintain.

How does this PR accomplish the above?:

  • Replace multiple positional selectors and if (SubmitLink == null) fallbacks with a single, readable selection:

    const links = document.querySelectorAll('.mt-3 > center:nth-child(1) > a');
    const SubmitLink = Array.from(links).find(a => a.textContent.trim() === '提交');
  • Benefits:

    • Removes brittle nth-child() dependencies
    • Reduces code duplication and complexity
    • Improves readability and maintainability

No UI/behavior changes expected; logic is functionally equivalent with a more robust selector.


By submitting this pull request, I confirm the following:

  1. I have read and understood the contributor's guide, as well as this entire template. I understand which branch to base my commits and Pull Requests against.
  2. I have commented on my proposed changes within the code and I have tested my changes.
  3. I am willing to help maintain this change if there are issues with it later.
  4. It is compatible with the GNU General Public License v3.0
  5. I have squashed any insignificant commits. (git rebase)
  6. I have checked that another pull request for this purpose does not exist.
  7. I have considered and confirmed that this submission will be valuable to others.
  8. I accept that this submission may not be used, and the pull request can be closed at the will of the maintainer.
  9. I give this submission freely and claim no ownership to its content.

  • I have read the above and my PR is ready for review. Check this box to confirm

…inding by text

一下子解决所有问题...
@hendragon-bot hendragon-bot bot added the user-script This issue or pull request is related to the main user script label Oct 7, 2025
@pull-request-size pull-request-size bot added size/M and removed size/S labels Oct 7, 2025
@boomzero boomzero merged commit 9f5c208 into dev Oct 7, 2025
3 checks passed
@boomzero boomzero deleted the boomzero/SubmitLink branch October 7, 2025 09:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/M user-script This issue or pull request is related to the main user script

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant