Greasy Fork

Greasy Fork is available in English.

【日本 IPA IT 认证考试真题网站,解除复制和右键限制】【日本のIPA IT認定試験の実際の問題サイト、コピーと右クリックの制限を解除します。】

日本 IPA IT 认证考试真题网站,解除复制和右键限制

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         【日本 IPA IT 认证考试真题网站,解除复制和右键限制】【日本のIPA IT認定試験の実際の問題サイト、コピーと右クリックの制限を解除します。】
// @version      0.1.1
// @author       trunk
// @match        *://*/*
// @grant        none
// @description  日本 IPA IT 认证考试真题网站,解除复制和右键限制
// @license MIT
// @namespace http://greasyfork.icu/users/904276
// ==/UserScript==

function enableCopyAndRightClick() {
  
  // 还原默认的右键菜单行为
  document.oncontextmenu = null;
  document.body.oncontextmenu = null;
  window.oncontextmenu = null;
  
  // 移除右键和选择禁用
  ['contextmenu', 'selectstart', 'copy', 'cut', 'paste', 'mousedown'].forEach(evt => {
    document.addEventListener(evt, e => {
      e.stopPropagation();
      // 不阻止默认行为,确保右键和复制可用
    }, true);
  });
  
}

function restoreDefaultUserSelect(selector) {
  const element = document.querySelector(selector);
  // 确保传入的是一个 DOM 元素
  if (element && element.style) {
    // 恢复为默认的 user-select 样式
    element.style.setProperty('user-select', 'auto');
  }
}

(function() {
  'use strict';
  
  // 只匹配 www.xxx-siken.com 的域名
  const pattern = /^www\.[a-zA-Z0-9_-]+-siken\.com$/;
  const hostname = window.location.hostname;
  
  // 如果域名匹配则启用复制和右键
  if (pattern.test(hostname)) {
    console.log('开启复制和鼠标右键');
    enableCopyAndRightClick();
    restoreDefaultUserSelect('html');
    restoreDefaultUserSelect('body');
  }
})();