使用Inspect Element

问题描述

这是JavaScript代码

<script type="text/javascript">
    var javascript_countdown = function () 
    {
        var time_left = 10; //number of seconds for countdown
        var keep_counting = 1;
        var no_time_left_message = 'Please Activate Javascript.';
        function countdown() 
        {
            if(time_left < 2) 
            {
                keep_counting = 0;
            }
            time_left = time_left - 1;
        }
        function add_leading_zero( n ) 
        {
            if(n.toString().length < 2) 
            {
                return '0' + n;
            } 
            else 
            {
                return n;
            }
        }
        function format_output() 
        {
            var hours,minutes,seconds;
            seconds = time_left % 60;
            minutes = Math.floor(time_left / 60) % 60;
            hours = Math.floor(time_left / 3600);
            seconds = add_leading_zero( seconds );
            minutes = add_leading_zero( minutes );
            hours = add_leading_zero( hours );
            return  minutes + ':' + seconds;
        }
        function show_time_left() 
        {
            document.getElementById('javascript_countdown_time').innerHTML = format_output();//time_left;
            document.getElementById('javascript_countdown_time_bottom').innerHTML = format_output();//time_left;
        }
        function no_time_left() 
        {
            //document.getElementById('javascript_countdown_time').innerHTML = no_time_left_message;
            //alert("");
            document.FormAzmoon.submit();
        }
        return {
            count: function () {
                countdown();
                show_time_left();
            },timer: function () {
                javascript_countdown.count();
                if(keep_counting) {
                    setTimeout("javascript_countdown.timer();",1000);
                } else {
                    no_time_left();
                }
            },init: function (n) {
                time_left = n;
                javascript_countdown.timer();
            }
        };
    }();
    javascript_countdown.init(601);// Time Recorder Secends
</script>

此Javascrip代码页面中的反向计时器(10分钟)。
当timer = 0时,它将自动提交页面
我想操纵它以增加时间。
我认为增加间的最佳方法是以下行:

setTimeout("javascript_countdown.timer();",1000);

更改为:

setTimeout("javascript_countdown.timer();",100000);

当我在Firefox中更改Inspector的{​​{1}}上的该值时,没有任何反应。
那么解决方案是什么?
如果还有除Firefox以外的其他方法,请教我!
还教我如何通过控制台重写和操作函数中的变量!

解决方法

JS将被解析并在中运行。在JS运行后更改页面标记不会更改JS的运行。您需要以其他方式进行更改。

一种选择是用您自己的函数覆盖.timer函数。页面脚本运行后,打开控制台并运行:

// save a reference to the original function if you need to
const origTimer = javascript_countdown.timer;
javascript_countdown.timer = () => null;

这将阻止页面对.timer的调用执行任何操作。然后,一旦要提交表单,只需手动调用document.FormAzmoon.submit();

还教我如何通过控制台重写和操作函数中的变量!

如果您实际上不得不采用这种方法,那几乎是不可能的,请参阅this question了解详细信息。简而言之,您需要使用一个用户脚本(或其他在页面加载开始时运行的脚本),使用MutationObserver来拦截<script>标签的添加,并用其textContent进行一次修饰。您会检测到脚本的添加。

,

确定要正确使用setTimeout吗? 尝试在检查中将setTimeout更改为此:

setTimeout(javascript_countdown.timer,100000);

如果这样不起作用,请尝试其他浏览器。也许Firefox不允许您在Inspect中设置计时器

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...