prototype.js抑制

【「@run-at document-start」必須】Prototype JavaScript framework (prototype.js) による組み込みメソッド破壊について、Tampermonkey、およびViolent monkeyが干渉するバグを回避します。

此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.cn-greasyfork.org/scripts/17932/140950/prototypejs%E6%8A%91%E5%88%B6.js

  1. // ==UserScript==
  2. // @name prototype.js抑制
  3. // @description 【「@run-at document-start」必須】Prototype JavaScript framework (prototype.js) による組み込みメソッド破壊について、Tampermonkey、およびViolent monkeyが干渉するバグを回避します。
  4. // @version 1.0.1
  5. // @license Mozilla Public License Version 2.0 (MPL 2.0); https://www.mozilla.org/MPL/2.0/
  6. // @compatible Firefox Greasemonkeyの場合は「@grant none」以外の指定で回避できるため、同環境では実行しないようにしています。
  7. // @compatible Opera
  8. // @compatible Chrome
  9. // @run-at document-start
  10. // @author 100の人
  11. // @homepage https://greasyfork.org/users/137
  12. // ==/UserScript==
  13.  
  14. (function () {
  15. 'use strict';
  16.  
  17. if (GM_info.scriptHandler && GM_info.scriptHandler !== 'Greasemonkey' && !Object.extend) {
  18. Object.defineProperty(Array, 'from', { writable: false });
  19. Object.defineProperty(Object, 'extend', {
  20. writable: false,
  21. value: function (destination, source) {
  22. for (let property in source) {
  23. let descriptor;
  24. if (property === 'toJSON' || property !== 'sub' && (descriptor = Object.getOwnPropertyDescriptor(destination, property)) && !descriptor.enumerable) {
  25. continue;
  26. }
  27. destination[property] = source[property];
  28. }
  29. return destination;
  30. },
  31. });
  32. }
  33.  
  34. })();