您需要先安装一个扩展,例如 篡改猴、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); } } })();