2016-08-03 93 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

相關問題