【问题标题】:JS added in bookmark still running after refreshing page刷新页面后书签中添加的JS仍在运行
【发布时间】:2021-02-08 12:43:23
【问题描述】:

我正在从书签(在 Opera 浏览器上)运行 JS 代码。我创建了一个无休止的计时器倒计时,它每 10 秒刷新一次我的页面。在我的 .html 文件中就好了。但是当我在任何其他网站上像书签一样使用它时,它只能工作 1 次然后就停止了。

刷新后怎么能运行?

javascript: 
var timeInSecs;
var ticker;
function startTimer(secs) {
timeInSecs = parseInt(secs);
ticker = setInterval("tick()", 1000); 
}
function tick( ) {
var secs = timeInSecs;
if (secs > 0) {
    timeInSecs--; 
}
else {
    location.assign(location.href.split('#')[0]);
    clearInterval(ticker);
    startTimer(1*10); 
}
}
startTimer(1*10); 

【问题讨论】:

  • 我不明白你的代码是如何运行的,但是如果你在另一个页面中运行它,当它刷新时你的代码不再嵌入到页面中
  • 究竟,有没有可能以某种方式嵌入?
  • 我唯一能想到的就是创建一个 google chrome 扩展程序,以便在 10 秒后为您刷新页面,因为您的建议是将您自己的代码注入网站,这听起来就像 XSS 攻击一样,即使您的意图不是恶意的

标签: javascript bookmarks


【解决方案1】:

您不需要间隔。重新加载页面后,间隔就会被清除。页面重新加载后,您的代码将再次执行。

试试这个:

document.body.innerHTML = Math.random(); // Demonstrates the page reload

setTimeout(() => document.location.reload(), 1000);

【讨论】:

    猜你喜欢
    • 2013-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多