Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.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
使用Inspect元素更改FireFox中的javascript代码_Javascript_Firefox_Inspect Element - Fatal编程技术网

使用Inspect元素更改FireFox中的javascript代码

使用Inspect元素更改FireFox中的javascript代码,javascript,firefox,inspect-element,Javascript,Firefox,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

下面是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>
改为:

setTimeout("javascript_countdown.timer();", 100000);
当我在firefox中的
Inspect元素
Inspector
上更改此值时,不会发生任何事情。
那么解决方法是什么呢?
如果除了firefox还有其他方法,请教我

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

JS一进入DOM就会被解析并运行。在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()手动

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


如果你真的不得不采用这种方法,那几乎是不可能的,详情请参见。简而言之,您需要使用userscript(或在pageload开始时运行的其他东西),使用MutationObserver拦截添加的
标记,并在检测到添加的脚本后处理其
文本内容。
JS将被解析并在DOM中运行。在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()手动

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


如果你真的不得不采用这种方法,那几乎是不可能的,详情请参见。简而言之,您需要使用userscript(或在pageload开始时运行的其他东西),使用MutationObserver拦截添加的
标记,并在检测到脚本添加后摆弄其
文本内容。

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

setTimeout(javascript\u countdown.timer,100000);

如果不起作用,尝试不同的浏览器。也许Firefox不允许您在Inspect中设置计时器

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

setTimeout(javascript\u countdown.timer,100000);

如果不起作用,尝试不同的浏览器。也许Firefox不允许您在Inspect中设置计时器,OP的版本也可以工作,传递给
setTimeout
的字符串会被静默地计算为代码。当然,字符串求值方法是正确的。请尝试在Inspect中将setTimeout更改为:但是我应该在哪里更改它?在调试器中,您不能更改任何内容-在Inspector选项卡中,更改时不会发生任何事情。唯一的方法是控制台…OP的版本也可以工作,传递到
setTimeout
的字符串将以静默方式计算为代码。当然,字符串求值方法是正确的。请尝试在Inspect中将setTimeout更改为:但是我应该在哪里更改它?在调试器中,您不能更改任何内容-在Inspector选项卡中,更改时不会发生任何事情。唯一的方法是控制台…非常感谢211k专业版:)非常感谢211k专业版:)