在 URL 中的 运行 JS 代码后保持页面处于活动状态

Keep the page active after run JS code in the URL

我使用 DCEF3,它是 Chromium 的 Delphi 包装器。我 运行 我的应用程序中有很多 JS 代码来与页面交互,如下例所示:

document.getElementById('name').value = 'Test';

为此,我调用了 Chromium 的 'load' 方法和 运行 下面 URL 字段中的代码:

javascript:document.getElementById('name').value = 'Test';

这与我打开 Chrome 并将上面的代码粘贴到 URL 字段中一样。它会工作,但问题是在我 运行 命令之后,浏览器将当前页面替换为内容为 'Test'.

的空白页面

我能找到的唯一方法来避免这个问题,填充元素并保持页面活动,是 运行 在同一个 URL 中添加一个额外的 'focus' 命令,像这样:

javascript:document.getElementById('name').value = 'Test';
document.getElementById('name').focus(); 

额外的 'focus' 方法似乎强制 Chrome 保持当前页面处于活动状态,而不是将其替换为空白页面。

这种方法正确吗?有没有更好的方法来完成这个任务?

谢谢!

无需调用焦点

看起来现在不可能通过在最后返回 false 来禁用重定向。

不过,您可以将焦点替换为 void(0);

javascript:document.getElementById('name').value = 'Test'; void(0)

void(0) 是流行的成语,表示 link 没有指向任何地方。现在很高兴看到它,但它仍然可以在浏览器中使用 URL。

顺便说一句,URL 中的 "javascript:" 在大多数浏览器中被禁用。