2009-07-12 9 views
1

ASP.NETを使用して新しいIEウィンドウを開いた後、Internet Explorerの「find」を使用してWebページ内の数字を見つけて(最初の結果に移動できますか)ASP.NETは新しいIEウィンドウを開き、プログラムで "find"を実行しますか?

編集:たぶん私は明確にすべき、私は私のものではないサイトのページを開いています、私はそれにJavaScriptを埋め込み、実行することはできません...

でも可能、このですか?

おかげ Roey

+0

私はそれが可能である疑いが、すべての上に、私は、これは、いくつかの厳密な投与オフィス環境におけるいくつかのイントラネット(あなたが人々がIEを使用していることを事実として知っている)ため、または個人的な使用のためであると仮定? – Arjan

+0

良い点.. これをすべてのブラウザで行う方法はないと思いますか? – Roey

答えて

1

ないASPまたはIE固有:ほとんどのサイトは、あなたにもText Highlight pluginと同じように、jQueryのを使用してクライアント側で行うことができた、唯一のハイライト表示を使用します。

あなたはその後、「次へ」および「前」ボタンを逃すことになるが、私は、誰かが同様にすでにその問題を解決したと思います...

EDIT:あなたは、コンテンツが他のサイトからのものであることを明らかにしたよう:あなた自身のURLからコンテンツを表示しない限り(これはおそらく他のサイトの所有者が受け入れない)、これはできません。たとえば、Googleのキャッシュ結果(GoogleのURLから配信されているコンテンツ)をクリックすると強調表示されますが、通常の検索結果(サイトのWebサーバーから配信される)をクリックするとその結果は表示されません。そのため、Googleは結局ハイライト表示を可能にするツールバーを提供しており、それが人々がbookmarkletsを使用する理由です。

0

あなたができることの1つは、サーバーがページ自体をリクエストしてから、Arjanが述べたようにjQueryのようなものでマークアップを変更することです。あなたはtelnetクライアントやWebブラウザに応答を自分で送信したいかのように今、あなたは、応答ストリームを表しリストを持っている

 HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.siteiwanttofindnumberon.com/pagetoopen.html"); 
     request.Headers = new WebHeaderCollection(); 
     //set up headers as necessary 
     request.Method = "GET"; 

     //retrieve the response 
     HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
     b = new List<byte>(); 
     while (b.Count < request.ContentLength) 
      b.Add((byte)response.GetResponseStream().ReadByte()); 

:ASP.NETで

は、ような何かを行います。あなたはこのようにしてください - たとえば、jQueryコードを注入してあなたのための強調表示をすることができます。

個人的に、このリストを手動でスキャンして、必要な情報を探し、それをハイライトするためにスパンでラップします。私はその時点でページ内アンカーを配置し、リクエストのターゲットをそのアンカーにリダイレクトして、ブラウザを強調表示されたテキストまでスクロールさせようとします。ここでも、jQueryや他のJavascriptフレームワークでもこれを実現できます。

最後に、このストリームをクライアントにレンダリングする方法を見つけることができます。私はあなたが新しいウィンドウでこれを行うことができれば私の頭の上から離れているのか分からない。手動でiFrame-modal-popup型のものを作成するか、HttpHandlerを使う必要があります。

0

JavaScriptアクセスがあったとしても、ブラウザのCtrl-F機能にアクセスすることはできません。 JSを持っていないので、答えはできないと思います...

関連する問題