2016-08-03 92 views
0

我使用DCEF3(一种用于Chromium的Delphi包装器)。我在我的应用程序运行大量的JS代码与页面交互,如下面的例子:在URL中运行JS代码后保持页面处于活动状态

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

要做到这一点,我叫铬的“负荷”的方法,并运行在URL字段代码如下:

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

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

我能找到避免这个问题,填补了元素并保持页面中的活动的唯一方法,就是在同一个URL运行额外的“专注”的命令,就像这样:

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

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

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

谢谢!

回答

1

没有必要调用焦点。

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

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

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

void(0)是受欢迎的习惯用法,表示该链接不指向任何地方。现在看到et,但它仍然在浏览器URL中工作。

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

+0

我测试通过'返回false'替换焦点,但屏幕上的元素值没有改变... – delphirules

+1

已更新的回答。现在应该工作。 – Arnial

相关问题