您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Temporary fix for the changes made in the WME internal data structure that breaks any script that interacts with the map
当前为
- // ==UserScript==
- // @name WME Fix Map Object
- // @namespace http://www.tomputtemans.com/
- // @description Temporary fix for the changes made in the WME internal data structure that breaks any script that interacts with the map
- // @include /^https:\/\/(www|beta)\.waze\.com\/(?!user\/)(.{2,6}\/)?editor.*$/
- // @version 1.0.0
- // @grant none
- // ==/UserScript==
- /* global W */
- (function() {
- 'use strict';
- var recoveredProperties = new Map();
- function init() {
- if (typeof W === 'undefined' ||
- typeof W.map === 'undefined' ||
- typeof W.map.olMap === 'undefined') {
- setTimeout(init, 100);
- return;
- }
- W.map = new Proxy(W.map, {
- 'get': function(target, property) {
- checkProperty(property);
- return Reflect.get(...arguments);
- }
- });
- recoverProperties();
- console.log("Fix Map Object: The following properties have been recovered: ", Array.from(recoveredProperties.keys()).sort());
- }
- init();
- function recoverProperties() {
- // Go through all properties, including the prototype chain
- for (var mapProperty in W.map.getOLMap()) {
- if (!W.map[mapProperty]) {
- recoveredProperties.set(mapProperty, 0);
- W.map[mapProperty] = W.map.getOLMap()[mapProperty];
- }
- }
- }
- function checkProperty(propertyName) {
- if (recoveredProperties.has(propertyName)) {
- var timesCalled = recoveredProperties.get(propertyName);
- if (timesCalled >= 10) {
- return;
- }
- console.groupCollapsed("Fix Map Object: Removed property W.map." + propertyName + " accessed. Expand for stack trace.");
- console.trace();
- console.groupEnd();
- if (timesCalled == 9) {
- console.warn("Fix Map Object: No longer reporting on removed property W.map." + propertyName + " (limit reached)");
- }
- recoveredProperties.set(propertyName, timesCalled + 1);
- }
- }
- })();