在通过ASP.NET打开新的IE窗口后,我可以使用Internet Explorer的“查找”来查找网页中的数字(并转到第一个结果)吗?
编辑:也许我应该澄清,我在一个不是我的网站上打开一个页面,我无法嵌入并运行javascript ...
这甚至可能吗?
由于 Roey
答案 0 :(得分:1)
不是ASP或IE特定的:大多数网站仅使用突出显示,您也可以使用jQuery在客户端进行突出显示,就像使用Text Highlight plugin一样。
然后你会错过“下一步”和“上一页”按钮,但我猜有人已经解决了这个问题......
编辑:当您澄清内容来自其他某个网站时:除非您在自己的网址中显示内容(可能不被其他网站的所有者接受),否则无法执行此操作。点击例如Google缓存结果(其内容由Google网址提供),该结果会突出显示,而点击正常搜索结果(从网站的网络服务器提供)则不会这样做。这就是为什么Google提供了一个允许突出显示的工具栏,这就是人们使用bookmarklets的原因。
答案 1 :(得分:0)
您可以做的一件事是让您的服务器请求页面本身,然后使用像Arjan提到的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());
现在您有一个表示响应流的List,就像您自己使用telnet客户端或Web浏览器发送了响应一样。您可以随意使用它 - 例如,注入jQuery代码以便为您突出显示。
就个人而言,我会手动扫描此列表以获取我想要的信息,并将其包装在一个范围内以突出显示它。我还会尝试在该点放置一个页内锚点,并将请求的目标重定向到该锚点,从而迫使浏览器向下滚动到突出显示的文本。同样,jQuery或其他Javascript框架也可以为您完成此任务。
最后,您需要找到一种方法将此流呈现给客户端。如果你能在新窗口中做到这一点,我不确定是不是最重要的。您可能需要手动构建iFrame-modal-popup类型的东西,或使用HttpHandler。
答案 2 :(得分:0)
即使您拥有JavaScript访问权限,我也不认为您可以在浏览器中访问Ctrl-F功能。既然你甚至没有JS,我想答案是没有办法......
答案 3 :(得分:0)
不,没有JS可访问的机制来执行此操作。曾经有一个名为NavigateAndFind()的专有IE API,但在IE7或IE6SP2中删除了它。
http://msdn.microsoft.com/en-us/library/ms536641(VS.85).aspx