3

Internet Explorer プラグインでユーザー セッションをフォークする (または同様のことを行う) ことは可能ですか?

ユーザーがツールバーのボタンをクリックしたときに表示されているページを処理したい。ユーザーのブラウジングを中断しないように、すべてを「コピー」して、ページをバックグラウンドで解析および処理できるようにしたいと考えています。この処理には、ボタンがクリックされた場所である場合に、Google 検索で結果リンクのコンテンツを読み込むなどの処理が含まれる場合があります。

だから - 私が基本的に望んでいるのはCtrl+を模倣することですがN、ウィンドウをユーザーから隠して、中断されないようにすることです。

ご覧のとおり、 http: //www.snee.com/xml/crud/posttest.html のフォームに入力して送信し、Ctrl+を押すとN、投稿されたものはすべて新しいウィンドウに表示されますが、表示されません。データを 2 回投稿します。

私はどういうわけかをコピーすることを考えていましIWebBrowser2たが、:

  • それが可能かどうかはわかりません(MSDNで情報を見つけることができませんでした)
  • セッションもコピーするかどうかはわかりません。

の新しいインスタンスを作成し、IWebBrowser2単に現在の URL に移動するだけでは、 POST-variables はもちろん引き継がれないため、有効な解決策ではありません。

4

3 に答える 3

1

BHOまたはプラグインが機能します。ソースを取得するためのオプションはたくさんあります、それはちょっとです。あなたの落ち着きを選んでください。IDocHostUIHandlerを検索して、動作を変更します。ブラウザでページを解析するためのIHTMLElementCollection。現時点で私が考えることができる最も簡単なことは...です。

現在のコンテンツをストリームに保存します。ソースの取得/表示と同じです。

// #含む
HRESULT SaveDocumenttoStream(IWebBrowser * pWebBrowser、
                             IStream * pStream)
{{
HRESULT時間;
IDispatch * pHtmlDoc = NULL;
IPersistStreamInit * pPersistStreamInit = NULL;
hr = pWebBrowser-> get_Document(&pHtmlDoc);
if(SUCCEEDED(hr)&& pHtmlDoc)
{{
  //IPersistStreamInitをクエリします。
  hr = pHtmlDoc-> QueryInterface(IID_IPersistStreamInit、
                               (void **)&pPersistStreamInit);
  if(SUCCEEDED(hr))
  {{
     hr = pPersistStreamIni-> Save(、True);
     pPersistStreamInit-> Release();
  }
  pHtmlDoc-> Release();
}

ブラウザとストリームを提供します。HTH

-

マイケル

于 2009-01-27T18:06:57.587 に答える
0

細かいところまで考えないといけないので無理だと思います。2つだけ言及します:

  • 組み込み Web ブラウザー (フレーム、IFRAME) に注意する必要があります。メインページをコピーするとURLがコピーされるだけなので、シリアル化されたメインページをどこかに復元するとコンテンツがリロードされ、ページのコンテンツが変更されると思います。そのため、フレーム レベルまで下げる必要があります。
  • フォークしたページによって既に送信されたデータを送信するために、背後でサーバーに接続しようとするスクリプトに注意する必要があります。そのため、ページのロジックを変更できます。

したがって、ライブ処理は、ユーザーが見ている状態をキャプチャする唯一の真のソリューションです。これがあなたが達成したいことなら。細かいことを気にする必要がないなら、もっと簡単にできるかもしれません。

于 2010-03-29T19:48:49.150 に答える
0

興味深い考え。DOM holus-bolus をコピーして、新しいウィンドウの DOM をそのコピーに置き換えていただけませんか。それはただの推測です。この時点で、私はあなたと同じくらい暗闇の中にいます。

于 2008-11-13T14:30:56.540 に答える