AutoRemoveReadonly

自动去除扫码输入框readonly属性并定位!

// ==UserScript==
// @name         AutoRemoveReadonly
// @namespace    http://tampermonkey.net/
// @version      2025-01-16 14:57
// @description  自动去除扫码输入框readonly属性并定位!
// @author       You
// @license      MIT
// @match        http://192.168.126.17/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=tampermonkey.net
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // 创建一个观察器实例并定义一个回调函数
    var observer = new MutationObserver(function(mutations) {
        mutations.forEach(function(mutation) {
            if (mutation.type === 'attributes' && mutation.attributeName === 'style') {
                var targetDiv = mutation.target;
                if (targetDiv.classList.contains('panel') && targetDiv.classList.contains('window')) {
                    var displayStyle = targetDiv.style.display;
                    if (displayStyle === 'block') {
                        // 定期检查元素是否加载
                        const checkElement = setInterval(() => {
                            console.log("执行了");
                            const inputElement = document.querySelector('#div1042188 .ck-edit-border');
                            if (inputElement) {
                                // 取消readonly属性
                                if (inputElement.getAttribute("readonly") !== null) {
                                    inputElement.removeAttribute('readonly');
                                }
                                // 定位光标
                                inputElement.focus();
                                // 检测输入框,有内容,则全部选择
                                if (inputElement.value.trim() !== '') {
                                    inputElement.select();
                                }
                            }
                        }, 1000); // 每1000毫秒(1秒)检查一次
                    } else if (displayStyle === 'none') {
                        // 重置标志变量为false
                        hasShownAlert = false;
                    }
                }
            }
        });
    });

    // 提供一个被观察目标节点,以及观察选项(观察属性变化)
    var config = { attributes: true, subtree: true, attributeFilter: ['style'] };
    var targetNode = document.body; // 监测整个文档的body部分

    // 开始观察
    observer.observe(targetNode, config);

    // 你可以在适当的时候停止观察
    // observer.disconnect();

})();