喫茶XRAYトップページ

[スレッド全体
]

[9134] エスパーは登場するのか返信 削除
2015/8/26 (水) 20:21:28 Mr.XRAY
あいかわらず,エスパーの登場を期待する質問がありますね.
そして,いつものように [典型的なパターン] です.

[chroniumのボタンをクリックするには?]
http://hpcgi3.nifty.com/e-papy/DelphiBBS/wwwlng.cgi?print+201508/15080007.txt

質問者が提示した具体的なものは,下のコードだけです.
これだけの HTML コードでもウェブブラウザで表示できますけどね (^^;

<Button class="submit" >送信</Button>
http://mrxray.on.coocan.jp/Delphi/Others/this_is_a_button.htm


上の HTML では,ボタンをクリックしても何も起きません.
何も起きなければ,クリックの確認が面倒です.

そこで,以下のようにして,ボタンをタグ名を検索してクリックするテストをしてみました.
質問されている方の言う,class 名からでも,もちろん処理すれば可能です.
でも,ほとんど意味ないですけど,
もちろん,この下のテストも,実際にはほとんど意味はないです.
タグ名やクラス名からボタンを検出しなければならないなんて考えられませんから.

<Button class="submit" onClick="location.href='http://mrxray.on.coocan.jp/index.htm'">SEND</Button>


//=============================================================================
//  ブラウザコンポーネントに指定のHTMLを表示
//=============================================================================
procedure TForm1.FormCreate(Sender: TObject);
var
  URL : String;
begin
  URL := ExtractFilePath(Application.ExeName) + 'this_is_a_button.htm';
  Chromium1.Load(URL);
end;

//=============================================================================
//  HTMLコード内のbuttonタグの最初のタグ(0が1番目)のボタンをクリック
//  このコードは,JavaScriptを実行しているだけなので
//  JavaScriptを実行する部分を変更すれば,他のブラウザコンポでも使用可能
//=============================================================================
procedure TForm1.Button1Click(Sender: TObject);
var
  LTagName : String;
  LJsText  : String;
begin
  if not Chromium1.Browser.HasDocument then exit;

  if Assigned(Chromium1.Browser.Mainframe) then begin
    LTagName := '''button''';
    LJsText  := 'document.getElementsByTagName(' + LTagName + ')[0].click();';
    Chromium1.Browser.MainFrame.ExecuteJavaScript(LJsText, 'about:blank', 0);
  end;
end;


興味ある方用に,プロジェクトをダウンロード可能にしています.EXE 付きです.
動作確認環境は,ソースコード内に書いてあります.
http://mrxray.on.coocan.jp/Delphi/zip/TChromium_ButtonClick.zip

下図が実行結果です.
下の図が [Button1] をクリックして,コードで [SEND] ボタンをクリックした結果です.

[9156] Re:エスパーは登場するのか返信 削除
2015/8/31 (月) 16:13:58 Mr.XRAY
> そして,いつものように [典型的なパターン] です.
>
> [chroniumのボタンをクリックするには?]
> http://hpcgi3.nifty.com/e-papy/DelphiBBS/wwwlng.cgi?print+201508/15080007.txt


典型的なパターンなので,反応があるとすれば言い訳だと確信はしていましたが,
ここまでくるとすごいですね.
人は何故言い訳をするか,それは,自分の言動を正当化するためなのですが,
完全に墓穴を掘っていますね.
ご愁傷様です.ご親族の方からどうぞ.合掌.


[9181] Re2:エスパーは登場するのか返信 削除
2015/9/3 (木) 21:41:06 SO
▼ Mr.XRAYさん
> > そして,いつものように [典型的なパターン] です.
> >
> > [chroniumのボタンをクリックするには?]
> > http://hpcgi3.nifty.com/e-papy/DelphiBBS/wwwlng.cgi?print+201508/15080007.txt
>
> 典型的なパターンなので,反応があるとすれば言い訳だと確信はしていましたが,
> ここまでくるとすごいですね.
> 人は何故言い訳をするか,それは,自分の言動を正当化するためなのですが,
> 完全に墓穴を掘っていますね.
> ご愁傷様です.ご親族の方からどうぞ.合掌.


けれど、何かしらの反応を見せる方なので、
良い方かもしれません。

ただ、無事クリックできたなら、後の人のために最小限コードは欲しいですが...

[9182] Re3:エスパーは登場するのか返信 削除
2015/9/3 (木) 22:37:52 Mr.XRAY
▼ SOさん
> けれど、何かしらの反応を見せる方なので、
> 良い方かもしれません。


あぁ!! そうですよね.失礼しました.
 
> ただ、無事クリックできたなら、後の人のために最小限コードは欲しいですが...

御意 !!
「典型的なパターン」の方は,これがない方がいるんですよね.
で,後から検索した方が,迷ってしまう.
コミュニティの場を情報源としている方には,ちょっと寂しいです.

例によって,僭越なレスしちゃおうかな.


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82