为什么我的greasemonkey代码在除了twitter之外的任何地方都可以有什么方法可以使它工作?

时间:2017-10-26 02:16:51

标签: javascript html firefox greasemonkey

在firefox中,我制作了一个非常好用的程序,但在twitter的页面上工作得很好。 twitter是否有某种针对javascript插件的保护?如果是这样,有没有解决方法?



// ==UserScript==
// @name        teste.js
// @namespace   teste.js
// @version     1
// @grant       none
// @include     *://www.twitter.com*
// @include     *://www.google.com*
// @include     *://www.facebook.com*
// @run-at      document-start
// ==/UserScript==

var pressedKey = 1;
var scroll;

function KeyCheck(e)
{
   var x = e.which || e.keyCode;
  console.log(e);
 if (x == 97)
    {
     clearInterval(scroll);

        if ( pressedKey == 1 )
        {
        scroll = setInterval(function(){ window.scrollBy(0,1); }, 50);
        pressedKey = -pressedKey;

        //document.getElementById("demo").style.backgroundColor = "red";
        }
        else if (pressedKey == -1)
        {
        pressedKey = -pressedKey;

        //document.getElementById("demo").style.backgroundColor = "blue";
        }
    }
}
window.addEventListener('keydown', KeyCheck, true);




2 个答案:

答案 0 :(得分:1)

正如所建议的那样,最好提供有关您尝试执行的脚本的详细信息以及有关您尝试执行的脚本的详细信息。

但是,我相信这里发生的事情是Twitter在他们的服务器上使用“Content Security Policy directive”拒绝注入脚本。

您可以通过在浏览器中打开Developer Tools并查看JavaScript控制台输出来看到失败。

This answer related to CSP可能对您有所帮助,但我预计由于在服务器上对其进行控制,因此无法完成任何工作。

答案 1 :(得分:0)

发现了这个问题。 我改变了

// @include     *://www.twitter.com*

// @include    *twitter.com* 

现在正在运作。 :d