即使在新页面加载后,仍保持 JavaScript 在浏览器控制台中运行

2024-01-07

假设我有一个在控制台中运行的脚本:

var counter = 0;
var i = setInterval(function() {
    // perform a number of actions here
    counter++;
    if (counter == 20) {
        clearInterval(i);
        $('a#next_page')[0].click();
        counter = 0;
    }
}, 1000);

当执行单击操作时#next_page锚,它加载一个新页面,从而删除我粘贴到控制台中的脚本。有没有办法让脚本在控制台内运行,无论您导航到哪些页面?


假设这种情况:在当代浏览器的 JavaScript 控制台中执行脚本。当加载新页面时,该控制台不具有所述 JavaScript 代码的此类请求功能(自动注入)。 如果加载的新页面中没有辅助脚本,则不起作用。可能的解决方法:

  1. 加载新内容通过XHR https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest相反并操纵浏览器历史记录 https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history#Adding_and_modifying_history_entries
  2. 实施为浏览器扩展 https://developer.chrome.com/extensions,找到一个已经支持该功能的浏览器扩展,或者随您的产品一起提供整个浏览器 http://qt-project.org/doc/qt-4.8/qtwebkit-bridge.html#thin-clients
  3. 拥有一个全尺寸的<iframe> whose src属性被操纵

如果问题是在 JS 控制台编辑框中输入的文本消失了,可能有一些设置可以防止这种情况发生,但这需要知道提问者正在使用哪个浏览器和哪个 JavaScript 控制台。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

即使在新页面加载后,仍保持 JavaScript 在浏览器控制台中运行 的相关文章