Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
停止执行Javascript函数(客户端)或调整它_Javascript_Greasemonkey - Fatal编程技术网

停止执行Javascript函数(客户端)或调整它

停止执行Javascript函数(客户端)或调整它,javascript,greasemonkey,Javascript,Greasemonkey,我想停止执行站点中的一行,以便浏览器可以读取除该行之外的整个页面。或者浏览器可能只是跳过该javascript函数的执行 或 有没有办法调整javascript,使javascript中的随机数生成函数不会生成随机数,而是生成我想要的数字 我无法访问脚本所在的站点,因此所有这些都需要在客户端完成。您可以使用所谓的bookmarklet 构建要在其他站点上运行的js文件:your.js 使用以下代码创建HTML页面: <html> <body> <a href="

我想停止执行站点中的一行,以便浏览器可以读取除该行之外的整个页面。或者浏览器可能只是跳过该javascript函数的执行

有没有办法调整javascript,使javascript中的随机数生成函数不会生成随机数,而是生成我想要的数字


我无法访问脚本所在的站点,因此所有这些都需要在客户端完成。

您可以使用所谓的bookmarklet

构建要在其他站点上运行的js文件:
your.js

使用以下代码创建HTML页面:

<html>
<body>
  <a href="javascript:(function(){var s=document.createElement('SCRIPT');s.src='/url/to/your.js?'+(Math.random());document.getElementsByTagName('head')[0].appendChild(s);})()">
    Drag'n Drop this to your bookmarks
  </a>
</body>
</html>

/url/to/your.js
替换为js文件的路径

在浏览器中加载该小页面,然后将链接拖放到书签栏

转到您想要破解的网站,单击刚刚创建的书签。
这将在页面中加载
your.js
,并运行代码


注意:
?”+(Math.random())
部分是为了避免缓存js,这不是强制性的,但在开发.js时会很有帮助,您可以使用所谓的bookmarklet

构建要在其他站点上运行的js文件:
your.js

使用以下代码创建HTML页面:

<html>
<body>
  <a href="javascript:(function(){var s=document.createElement('SCRIPT');s.src='/url/to/your.js?'+(Math.random());document.getElementsByTagName('head')[0].appendChild(s);})()">
    Drag'n Drop this to your bookmarks
  </a>
</body>
</html>

/url/to/your.js
替换为js文件的路径

在浏览器中加载该小页面,然后将链接拖放到书签栏

转到您想要破解的网站,单击刚刚创建的书签。
这将在页面中加载
your.js
,并运行代码


注意:
?'+(Math.random())
部分是为了避免缓存js,这不是强制性的,但在开发
你的.js

时会很有帮助。答案取决于没有提供的细节(确切的页面和代码行最好),但一般情况下你是这样做的:

  • 如果有问题的JS代码没有立即触发(在
    DOMContentLoaded
    之后触发),则可以使用Greasemonkey替换有问题的代码。例如:

    var scriptNode          = document.createElement ("script");
    scriptNode.textContent  = "Your JS code here";
    document.head.appendChild (scriptNode);
    
    完成了

  • 如果JS代码立即触发,那么它会变得更复杂。
    首先,获取脚本的副本并对其进行所需的更改。在本地保存此文件


  • 违规脚本是在文件中还是在主页HTML中(
    答案取决于未提供的详细信息(确切的页面和代码行最好),但以下是您通常的操作方式:

  • 如果有问题的JS代码没有立即触发(在
    DOMContentLoaded
    之后触发),则可以使用Greasemonkey替换有问题的代码。例如:

    var scriptNode          = document.createElement ("script");
    scriptNode.textContent  = "Your JS code here";
    document.head.appendChild (scriptNode);
    
    完成了

  • 如果JS代码立即触发,那么它会变得更复杂。
    首先,获取脚本的副本并对其进行所需的更改。将其保存在本地


  • 违规脚本是在文件中还是在主页HTML中(
    Firefox当前支持(截至)——

    通过这次活动,Firefox和Greasemonkey现在似乎在拦截特定的
    标记方面做得很好

    这对于Chrome+Tampermonkey仍然是不可能的。对于Firefox+Greasemonkey以外的任何东西,您都需要使用下面其他答案中所示的技术来编写完整的浏览器扩展

    封装它。例如,假设页面有一个
    标记,如下所示:

    <script>
        alert ("Sorry, Sucka!  You've got no money left.");
    </script>
    
    为了得到更好的信息。(^ ^)
    有关更多信息,请参阅checkForBadJavascripts中的内联文档


    要查看完整脚本中的演示,请首先访问。您将看到3行文本,其中两行由JS添加

    现在,(;也在下面。)重新访问页面。你会看到GM脚本删除了一个坏标签,并用我们的“好”JS替换了另一个


    ——请注意,只有Firefox支持beforescriptexecute
    事件。它已从HTML5规范中删除,但没有指定等效功能



    完整的GM脚本示例(与GitHub和jsBin的示例相同):

    鉴于此HTML:

    <body onload="init()">
    <script type="text/javascript" src="http://jsbin.com/evilExternalJS/js"></script>
    <script type="text/javascript" language="javascript">
        function init () {
            var newParagraph            = document.createElement ('p');
            newParagraph.textContent    = "I was added by the old, evil init() function!";
            document.body.appendChild (newParagraph);
        }
    </script>
    <p>I'm some initial text.</p>
    </body>
    

    Firefox目前支持(截至)——

    通过这次活动,Firefox和Greasemonkey现在似乎在拦截特定的
    标记方面做得很好

    这对于Chrome+Tampermonkey仍然是不可能的。对于Firefox+Greasemonkey以外的任何东西,您都需要使用下面其他答案中所示的技术来编写完整的浏览器扩展

    封装它。例如,假设页面有一个
    标记,如下所示:

    <script>
        alert ("Sorry, Sucka!  You've got no money left.");
    </script>
    
    为了得到更好的信息。(^ ^)
    有关更多信息,请参阅checkForBadJavascripts中的内联文档


    要查看完整脚本中的演示,请首先访问。您将看到3行文本,其中两行由JS添加

    现在,(;也在下面。)重新访问页面。你会看到GM脚本删除了一个坏标签,并用我们的“好”JS替换了另一个


    ——请注意,只有Firefox支持beforescriptexecute
  • 事件。它已从HTML5规范中删除,但没有指定等效功能



    完整的GM脚本示例(与GitHub和jsBin的示例相同):

    鉴于此HTML:

    <body onload="init()">
    <script type="text/javascript" src="http://jsbin.com/evilExternalJS/js"></script>
    <script type="text/javascript" language="javascript">
        function init () {
            var newParagraph            = document.createElement ('p');
            newParagraph.textContent    = "I was added by the old, evil init() function!";
            document.body.appendChild (newParagraph);
        }
    </script>
    <p>I'm some initial text.</p>
    </body>
    

    使用TamperMonkey?您需要在TamperMonkey标题中的
    /@grant
    下方添加的所有内容都是
    /@requirehttp://urlofyoursite.com/myfile.js
    。例如,下面是我的TamperMonkey内容的顶部:

    // ==UserScript==
    // @name         Project
    // @namespace    http://tampermonkey.net/
    // @version      0.1
    // @description  try to take over the world!
    // @author       You
    // @match        https://docs.google.com/presentation/*
    // @grant        none
    // @require http://cdnjs.cloudflare.com/ajax/libs/annyang/2.1.0/annyang.min.js
    // ==/UserScript==
    

    使用TamperMonkey?您需要在TamperMonkey标题中的
    /@grant
    下方添加的所有内容都是
    /@requirehttp://urlofyoursite.com/myfile.js
    。例如,下面是我的TamperMonkey想法的顶部: