2016-08-03 3 views
0

私は、ChromiumのDelphiラッパーであるDCEF3を使用します。そうするためにURLにJSコードを実行した後でページをアクティブにしておきます

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

、私はクロムの「ロード」メソッドを呼び出すと、URL欄に以下のコードを実行します。私は、以下の例のように、ページと対話するために私のアプリ上でJSのコードの多くを実行します。

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

Chromeを開いてURLフィールドにコードを貼り付けるのと同じことです。それは動作しますが、問題は私がコマンドを実行した後、ブラウザーは内容 'Test'で空白ページの現在のページを置き換えます。

私は要素を記入し、アクティブなページを維持するために、この問題を回避するために見つけることができる唯一の方法は、このように、同じURLに追加された「フォーカス」コマンドを実行することです:

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

追加の 'フォーカス'メソッドは、現在のページを空白に置き換えるのではなく、現在のページをアクティブに保つように強制しているようです。

このアプローチは正しいですか?このタスクを達成するためのより良い方法はありますか?

ありがとうございます!

答えて

1

フォーカスを呼び出す必要はありません。

最後にfalseを返すだけでリダイレクトを無効にすることはできません。

でも、フォーカスをvoid(0)に置き換えることができます。

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

void(0)リンクが任意の場所を指していないことを示すために、人気のイディオムました。それは今見たいものですが、まだブラウザのURLで動作しています。

ところで、ほとんどのブラウザでURLの「javascript:」が無効になっています。

+0

フォーカスを 'return false'に置き換えてテストしましたが、画面上の要素の値は変更されませんでした。 – delphirules

+1

答えが更新されました。今すぐ働かなければならない。 – Arnial

関連する問題