Javascript 如何执行网页中的js函数以及如何模拟调用

Javascript 如何执行网页中的js函数以及如何模拟调用,javascript,Javascript,图为Chrome浏览器中右键点击查看源页面的打印屏幕。通过在源代码的完整上下文中进行搜索,我只找到了方法freshPage的一个引用。我没有找到定义。因此,我对浏览器如何执行脚本感到困惑,因为freshPage方法似乎不喜欢内置Javascript函数。在页面加载期间,我没有看到任何其他脚本。 如何模拟操作以获取函数的返回值 在评论和回复的帮助下,我意识到我错过了更多服务器响应的.js文件。我在文件中找到了定义。只有两种可能: freshPage功能由页面上的脚本提供。这可能是指一个单独的资源

图为Chrome浏览器中右键点击查看源页面的打印屏幕。通过在源代码的完整上下文中进行搜索,我只找到了方法freshPage的一个引用。我没有找到定义。因此,我对浏览器如何执行脚本感到困惑,因为freshPage方法似乎不喜欢内置Javascript函数。在页面加载期间,我没有看到任何其他脚本。 如何模拟操作以获取函数的返回值


在评论和回复的帮助下,我意识到我错过了更多服务器响应的.js文件。我在文件中找到了定义。

只有两种可能:

  • freshPage
    功能由页面上的脚本提供。这可能是指一个单独的资源的
    (似乎很可能),或者是这里的内联
    /*代码*/
    ,或者

  • 该调用将抛出一个
    ReferenceError

  • 在本例中,它是#1:页面通过声明函数的脚本标记加载
    more.js

    如何模拟操作以获取函数的返回值

    就叫它吧。这可以来自您在页面、bookmarklet或控制台中注入的脚本


    这里的情况并非如此,但请注意,在脚本执行后完全可以删除它。例如:

    <script id="foo">
    function doSomething() {
        // ...
    }
    setTimeout(function() {
        var script = document.getElementById("foo");
        script.parentNode.removeChild(script);
    }, 0);
    </script>
    
    
    函数doSomething(){
    // ...
    }
    setTimeout(函数(){
    var script=document.getElementById(“foo”);
    script.parentNode.removeChild(脚本);
    }, 0);
    
    一旦加载了包含它的页面,就会在全局范围内定义一个
    doSomething
    函数,并且页面上不再存在定义它的
    script
    标记。(“查看源代码”应该显示它,但不是屏幕截图中显示的实时DOM检查器。)


    但是,你链接的页面并没有做到这一点。脚本标记在“查看源代码”和DOM检查器中都很容易找到。

    您可以从控制台调用它以获取返回值
    freshPage(…
    @wason,检查。是的,我刚才刷新时没有找到它。我被阻止提问。有人知道如何取消阻止吗?“这是带有函数
    freshPage
    声明的页面。@user7393973:是的,我已经添加了它。”。