在URL

时间:2016-08-03 13:02:18

标签: javascript chromium chromium-embedded

我使用DCEF3,一个用于Chromium的Delphi包装器。我在我的应用程序上运行了很多JS代码来与页面进行交互,如下例所示:

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

为此,我调用Chromium的'load'方法并在URL字段中运行以下代码:

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

与我打开Chrome并将上面的代码粘贴到网址字段中是一回事。它可以工作,但问题是在我运行命令后,浏览器将当前页面替换为内容为“Test”的空白页面。

我可以找到避免此问题的唯一方法,即填充元素并保持页面处于活动状态,就是在同一个URL中运行一个额外的'focus'命令,如下所示:

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

额外的“焦点”方法似乎迫使Chrome保持当前页面处于活动状态,而不是将其替换为空白页面。

这种做法是否正确?有没有更好的方法来完成这项任务?

谢谢!

1 个答案:

答案 0 :(得分:1)

无需调用焦点。

现在看起来不能通过在结尾处返回false来禁用重定向。

但是,您可以使用void(0);

替换焦点
javascript:document.getElementById('name').value = 'Test'; void(0)

void(0)是流行的成语,表示链接没有指向任何地方。它现在很难看到et,但它仍然在浏览器URL中工作。

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