在 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:" 在大多数浏览器中被禁用。
我使用 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:" 在大多数浏览器中被禁用。