2009-07-12 3 views
1

Могу ли я использовать «найти» проводника Интернета, чтобы найти номер (и перейти к первому результату) на веб-странице после того, как я открою новое окно IE через ASP.NET?ASP.NET открывает новое окно IE и запускает «найти» программно?

Edit: Может быть, я должен уточнить, я открываю страницу на сайте, не мое, я не могу вставить и запустить JavaScript на нем ...

Является ли это вообще возможно?

Благодаря Roey

+0

Я сомневаюсь, что это возможно, но, прежде всего, я полагаю, что это какой-то интранет в некоторой строго управляемой офисной среде (так что вы знаете, как факт, что люди используют IE), или для личного пользования? – Arjan

+0

Хорошая точка .. Я не думаю, что есть способ сделать это для всех браузеров? – Roey

ответ

1

Не ASP или IE-специфические: большинство сайтов используют выделение только, что вы могли бы также сделать на стороне клиента с помощью JQuery, как с Text Highlight plugin.

Вы бы тогда отсутствует «Next» и «Предыдущие» кнопки, но я предполагаю, что кто-то решил эту проблему уже, а ...

EDIT: Как вы уточнили, что содержание с другого сайта: это невозможно сделать, если вы не покажете контент из своего собственного URL-адреса (который, вероятно, не принят владельцем другого сайта). Например, вы можете получить результат кэширования Google (для которого контент будет отправлен из URL-адреса Google), который делает выделение, при этом обычный результат поиска (который подается с веб-сервера сайта) не выполняется. Вот почему Google предлагает панель инструментов, которая позволяет выделять в конце концов, и именно поэтому люди используют bookmarklets.

0

Одна вещь, которую вы можете сделать, - это заставить ваш сервер запросить саму страницу, а затем изменить разметку с чем-то вроде jQuery, о котором упоминал Арьян.

С ASP.NET, сделать что-то вроде:

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

Теперь у вас есть список, который представляет поток ответа, как если бы вы отправили ответ самостоятельно с телнет клиентом или веб-браузером. Вы можете сделать это, как вам угодно, например, ввести код jQuery, чтобы сделать выделение для вас.

Лично я бы вручную просмотрел этот список для информации, которую я хочу, и обернуть ее в промежутке, чтобы выделить ее. Я также попытался бы поставить привязку на странице в этой точке и перенаправить целевой запрос на этот якорь, тем самым заставляя браузер прокручиваться вниз до выделенного текста. Опять же, jQuery или другая инфраструктура Javascript могут выполнить это и для вас.

Наконец, вы захотите найти способ визуализации этого потока для клиента. Я не уверен в своей голове, если вы можете сделать это в новом окне. Возможно, вам придется вручную создать объект типа iFrame-modal-popup или использовать HttpHandler.

0

Даже если у вас есть доступ к JavaScript, я не думаю, что вы могли бы получить доступ к функциональности Ctrl-F в браузере. Теперь, когда у вас даже нет JS, я думаю, что ответ не может ...

Смежные вопросы