2009-07-12 3 views
1

Kann ich den "find" von Internet Explorer verwenden, um nach dem Öffnen eines neuen IE-Fensters über ASP.NET auf einer Webseite eine Nummer zu finden (und zum ersten Ergebnis zu gelangen)?ASP.NET neues IE-Fenster öffnen und "find" programmatisch ausführen?

Edit: Vielleicht sollte ich klären, bin Öffnen ich eine Seite auf einer Website, die nicht von mir ist, kann ich nicht Javascript es einbetten und laufen ...

dies überhaupt möglich ist?

Dank Roey

+0

Ich bezweifle es möglich ist, vor allem aber gehe ich davon aus das für einige Intranet ist in einigen streng verwaltet Büroumgebung (so wissen Sie, als eine Tatsache, dass die Menschen IE verwenden), oder für den persönlichen Gebrauch? – Arjan

+0

Guter Punkt .. Ich nehme an, es gibt eine Methode, dies für alle Browser zu tun? – Roey

Antwort

1

Nicht ASP oder IE-spezifisch: die meisten Websites verwenden Hervorhebung nur, was Sie auch auf der Client-Seite tun könnte jQuery verwenden, wie mit dem Text Highlight plugin.

Sie würden dann die „Weiter“ fehlen und „Zurück“ -Buttons, aber ich denke, jemand dieses Problem schon auch ... gelöst

EDIT: Wie Sie stellt klar, dass der Inhalt von einer anderen Seite ist: Dies ist nicht möglich, es sei denn, Sie zeigen den Inhalt innerhalb Ihrer eigenen URL an (was wahrscheinlich nicht vom Eigentümer der anderen Website akzeptiert wird). Klicken Sie zum Beispiel auf ein Google-Cache-Ergebnis (für das der Content über eine Google-URL bereitgestellt wird), das Hervorhebungen durchführt, während das Klicken auf ein normales Suchergebnis (das vom Webserver der Website geschaltet wird) nicht erfolgt. Aus diesem Grund bietet Google eine Toolbar an, die die Hervorhebung ermöglicht, und deshalb verwenden die Leute bookmarklets.

0

Eine Sache, die Sie tun können, ist Ihr Server die Seite selbst anfordern, und ändern Sie dann das Markup mit etwas wie jQuery wie Arjan erwähnt.

Mit ASP.NET, so etwas wie:

 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()); 

Jetzt haben Sie eine Liste, die die Antwort Strom darstellt, als ob Sie die Antwort selbst mit einem Telnet-Client gesendet würde oder einen Web-Browser. Sie können damit tun, was Sie wollen - zum Beispiel, jQuery-Code zu injizieren, um die Hervorhebung für Sie vorzunehmen.

Persönlich würde ich diese Liste manuell nach den Informationen durchsuchen, die ich möchte, und sie in einen Bereich einbinden, um sie hervorzuheben. Ich würde auch versuchen, an dieser Stelle einen In-Page-Anker zu setzen und das Ziel der Anfrage an diesen Anker umzuleiten, wodurch der Browser gezwungen wird, zu dem markierten Text hinunterzuscrollen. Auch dies könnte wiederum durch jQuery oder ein anderes Javascript-Framework erreicht werden.

Schließlich möchten Sie eine Möglichkeit finden, diesen Stream auf dem Client zu rendern. Ich bin mir nicht sicher, ob Sie das in einem neuen Fenster tun können. Möglicherweise müssen Sie ein iFrame-Modal-Popup-Objekt manuell erstellen oder einen HttpHandler verwenden.

0

Auch wenn Sie JavaScript-Zugriff hatten, glaube ich nicht, dass Sie in einem Browser auf die Ctrl-F-Funktionalität zugreifen konnten. Jetzt, da Sie noch nicht einmal JS haben, denke ich, die Antwort ist keine kann ...