Tag: userscripts

为什么窗口(和unsafeWindow)从脚本不像从一个<script>标记相同?

我在开发这个小用户脚本时遇到了一个问题。 当我想用我的脚本阻止正在运行的网站的每个XMLHttpRequest ,没有任何事情发生(至less在Chrome中): function main() { // Override XHR.open with a custom function window.XMLHttpRequest.prototype.open = function() { // Nothing… so it's supposed to block every xhr.open() call } } main(); 用unsafeWindowreplacewindow时同样的事情。 但是,当我使用这个小技巧时,一切都像一个魅力: // No more call to main(), and: var script = document.createElement("script"); script.textContent = "(" + main.toString() + ")();"; document.body.appendChild(script); 每个调用xhr.open都被我的自定义函数取代,不再有AJAX。 所以我猜想,当从脚本内部调用main时, window元素与从<script></script>容器调用main时不一样。 有人能解释我为什么吗?

使用ECMAScript 6

我正在寻找一种方法来在浏览器的控制台中运行ECMAScript 6代码,但大多数浏览器不支持我正在寻找的function。 例如Firefox是唯一支持箭头function的浏览器。 有没有办法(扩展,用户等)我可以在Chrome上运行这些function?

Uncaught ReferenceError:函数没有用onclick定义

我正在尝试为网站添加自定义表情 。 不过,我得到了很多错误。 这是function: function saveEmotes() { removeLineBreaks(); EmoteNameLines = EmoteName.value.split("\n"); EmoteURLLines = EmoteURL.value.split("\n"); EmoteUsageLines = EmoteUsage.value.split("\n"); if (EmoteNameLines.length == EmoteURLLines.length && EmoteURLLines.length == EmoteUsageLines.length) { for (i = 0; i < EmoteURLLines.length; i++) { if (checkIMG(EmoteURLLines[i])) { localStorage.setItem("nameEmotes", JSON.stringify(EmoteNameLines)); localStorage.setItem("urlEmotes", JSON.stringify(EmoteURLLines)); localStorage.setItem("usageEmotes", JSON.stringify(EmoteUsageLines)); if (i == 0) { console.log(resetSlot()); } emoteTab[2].innerHTML += '<span style="cursor:pointer;" […]