Javascript 加载ASP网站检索并重定向C中的a href#
我正在做我的第一个外接程序Outlook。我想在表单中加载ASP网站,并使用Javascript 加载ASP网站检索并重定向C中的a href#,javascript,c#,html,asp.net,Javascript,C#,Html,Asp.net,我正在做我的第一个外接程序Outlook。我想在表单中加载ASP网站,并使用标记中的href重定向。没有特定的id来仅标识的值。见下文。谢谢,这是事先准备好的 <li class="rmItem "> <a class="rmLink rmSelected" style="width: 194px;" href="javascript:Goto('DM_NEW_OBJECT.ASPX?DM_CAT_ID=2171&DM_PARENT_ID=254769&
标记中的href
重定向。没有特定的id来仅标识
的值。见下文。谢谢,这是事先准备好的
<li class="rmItem ">
<a class="rmLink rmSelected" style="width: 194px;" href="javascript:Goto('DM_NEW_OBJECT.ASPX?DM_CAT_ID=2171&DM_PARENT_ID=254769&INPUTSELECTION=&DM_OBJECT_ID=0&PACK_ID=0&CASE_ID=0&mode=0&SITE=Default');">
<span class="rmText">Dossier protection</span>
</a>
</li>
您可以将自己附加到DocumentCompleted事件,当文档完全加载时会触发该事件,然后您可以用类似的方式搜索DOM
首先,将事件处理程序添加到构造函数内的DocumentCompleted事件中,并在窗体关闭时删除事件处理程序
在load事件中,您可以导航到所需页面,然后在DOM中搜索所有li,然后检查所需的文本。如果匹配,搜索URL,然后调用click事件(这将触发javascript Goto函数)
你需要什么帮助?检索href还是重定向?哪种类型的控件用于重定向?我需要C语言中的帮助来执行从到这个“javascript:Goto(DM_NEW_OBJECT.ASPX?DM_CAT_ID=2171&;DM_PARENT_ID=254769&;INPUTSELECTION=&;DM_OBJECT_ID=0&;PACK_ID=0&;CASE_ID=0&;mode=0&;SITE=Default);”控件是列表中的一个元素,当您单击时,您将被重定向到一个新页面是的,我得到了,我的问题是您是否可以指定您正在使用的组件,您正在为哪个outlook设计,以及javascript、html和asp.net标记与outlook插件有什么关系?此外,javascript链接中没有指定基本url,因此无法知道需要转到哪个服务器。你问的问题是,如何尽可能详细说明,这样我们就不必问……在C#中,我有一个From。在我的表格中,我添加了一个WebBrowser。我使用方法
WebBrowser.Navigate(“myUrl”)
加载url。现在我想通过javascript调用自动重定向。我的问题是:是否有可能在C#中启动此javascript?如何启动?或者我必须要求我的应用程序“按下”按钮(但为此我需要检索按钮)?感谢您的回复。没用,我不知道为什么。我调试hem,他不介入foreach(HtmlElement中的htmlElem)
这是我元素的结构:html>body>form>div>table>tbody>tr>td>div>table>tbody>tr>td>div>ul>li>div>ul>a>span
我更新代码以使用DocumentCompleted事件而不是导航事件…谢谢!!!还有一些事情需要解决,但我认为这是个好办法。我会设法的。谢谢你抽出时间。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
webBrowser1.DocumentCompleted += OnPageCompleted;
}
private void Form1_Load(object sender, EventArgs e)
{
webBrowser1.Navigate(Path.Combine(Environment.CurrentDirectory, "DemoPage.html"));
}
protected virtual void OnPageCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if (webBrowser1.Document == null)
{
return;
}
if (webBrowser1.Document.Body == null)
{
return;
}
HtmlElementCollection col = webBrowser1.Document.Body.GetElementsByTagName("li");
if (col == null || col.Count == 0)
{
return;
}
foreach (HtmlElement elem in col)
{
if (elem == null || string.IsNullOrWhiteSpace(elem.InnerHtml))
{
continue;
}
var links = elem.GetElementsByTagName("a");
if (links == null || links.Count == 0)
{
continue;
}
foreach (HtmlElement url in links)
{
if (url == null || string.IsNullOrWhiteSpace(url.InnerHtml))
{
continue;
}
try
{
url.InvokeMember("click");
}
catch (Exception ex)
{
Console.WriteLine(ex.GetType().FullName + "\r\n" + ex.Message);
}
}
}
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
webBrowser1.DocumentCompleted -= OnPageCompleted;
}
}