ASP.NET открыть новое окно IE и запустить "найти" программно? - PullRequest
1 голос
/ 12 июля 2009

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

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

Возможно ли это вообще?

Спасибо Roey

Ответы [ 4 ]

1 голос
/ 12 июля 2009

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

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

РЕДАКТИРОВАТЬ: Как вы пояснили, что контент взят с какого-то другого сайта: это невозможно сделать, если вы не показываете контент из своего собственного URL (который, вероятно, не принят владельцем другого сайта). Нажмите, например, на результат кеша Google (для которого контент подается с URL-адреса Google), который делает подсветку, тогда как щелчок на обычном результате поиска (который подается с веб-сервера сайта) этого не делает. Вот почему Google предлагает панель инструментов, которая в конце концов позволяет выделять, и именно поэтому люди используют букмарклетов .

0 голосов
/ 12 июля 2009

Нет, JS-доступного механизма для этого нет. Раньше для этого существовал собственный IE API, называемый NavigateAndFind (), но он был удален в IE7 или IE6SP2.

http://msdn.microsoft.com/en-us/library/ms536641(VS.85).aspx

0 голосов
/ 12 июля 2009

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

0 голосов
/ 12 июля 2009

Одна вещь, которую вы можете сделать, это заставить свой сервер запрашивать саму страницу, а затем изменить разметку с помощью чего-то вроде 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());

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...