Greasy Fork

来自缓存

Greasy Fork is available in English.

old.reddit.com login form redirection fix

Adds a login form to the top right of old reddit and preserves the current page after login.

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         old.reddit.com login form redirection fix
// @namespace    http://tampermonkey.net/
// @version      1.2
// @description  Adds a login form to the top right of old reddit and preserves the current page after login.
// @match        https://old.reddit.com/*
// @license      MIT
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // Check if an element with class "logout" exists
    if (document.querySelector('.logout') === null) {
        // Capture the current URL
        const currentURL = window.location.href;

        // Prepare the HTML form
        const formHTML = `
            <div id="login">
            <h1>Login</h1>
            <br>
              <form id="login-form" method="post" action="https://old.reddit.com/post/login" class="form-v2">
                  <input type="hidden" name="op" value="login">
                  <input type="hidden" name="dest" value="${currentURL}">
                  <div class="c-form-group">
                      <label for="user_login" class="screenreader-only">username:</label>
                      <input value="" name="user" id="user_login" class="c-form-control" type="text" maxlength="20" tabindex="3" placeholder="username" autofocus>
                  </div>
                  <div class="c-form-group">
                      <label for="passwd_login" class="screenreader-only">password:</label>
                      <input id="passwd_login" class="c-form-control" name="passwd" type="password" tabindex="3" placeholder="password">
                      <div class="c-form-control-feedback-wrapper">
                          <span class="c-form-control-feedback c-form-control-feedback-throbber"></span>
                          <span class="c-form-control-feedback c-form-control-feedback-error" title=""></span>
                          <span class="c-form-control-feedback c-form-control-feedback-success"></span>
                      </div>
                  </div>
                  <div class="c-checkbox">
                      <input type="checkbox" name="rem" id="rem_login" tabindex="3">
                      <label for="rem_login">remember me</label>
                      <a style="display:none;" href="https://old.reddit.com/password" class="c-pull-right">reset password</a>
                  </div>
                  <div class="spacer">
                      <div class="c-form-group g-recaptcha" data-sitekey="6LeTnxkTAAAAAN9QEuDZRpn90WwKk_R1TRW_g-JC"></div>
                      <span class="error BAD_CAPTCHA field-captcha" style="display:none"></span>
                  </div>
                  <div class="c-clearfix c-submit-group">
                      <span class="c-form-throbber"></span>
                      <button type="submit" class="c-btn c-btn-primary c-pull-right" tabindex="3">log in</button>
                  </div>
                  <div>
                      <div class="c-alert c-alert-danger"></div>
                  </div>
              </form>
            <div>
        `;

        // Find the element with the class "side" and prepend the form
        const sideElement = document.querySelector('.side');
        if (sideElement) {
            sideElement.insertAdjacentHTML('afterbegin', formHTML);
        }
        // Insert CSS styles into the document head
        const style = document.createElement('style');
        style.innerHTML = `
            #login .c-alert {
                display: none;
                font-size: 11px;
            }
            .c-alert-danger {
                background-color: #f9e7e6;
                border-color: #f7dfdd;
                color: #b73129 !important;
            }
            .c-alert {
                padding: 15px;
                margin: 8px 0 19px;
                border: 1px solid transparent;
                border-radius: 2px;
            }
            #login {
              padding: 15px;
              border: 1px solid #fff;
              margin-top: 15px;
              margin-bottom: 15px;
            }
        `;
        document.head.appendChild(style);
    }
})();