我router.navigate在同一页面上调用一些查询字符串参数.在这种情况下,ngOnInit()不会打电话.它是默认还是我需要添加其他内容?
我正在尝试以编程方式通过WebBrowser控件加载网页,目的是测试页面及其JavaScript函数.基本上,我想比较通过此控件运行的HTML和JavaScript与已知输出,以确定是否存在问题.
但是,我在创建和导航WebBrowser控件时遇到了麻烦.下面的代码旨在将HtmlDocument加载到WebBrowser.Document属性中:
WebBrowser wb = new WebBrowser();
wb.AllowNavigation = true;
wb.Navigate("http://www.google.com/");
Run Code Online (Sandbox Code Playgroud)
在Navigate()运行后通过Intellisense检查Web浏览器的状态时,WebBrowser.ReadyState为'未初始化',WebBrowser.Document = null,并且它总体上看起来完全不受我的调用的影响.
在上下文中,我在Windows窗体对象之外运行此控件:我不需要加载窗口或实际查看页面.要求规定需要简单地执行页面的JavaScript并检查生成的HTML.
非常感谢任何建议,谢谢!
我正在为 angular 应用程序运行单元测试,我想对导航在 angular 应用程序中是否正常工作进行单元测试。
if (this.customer.length == 0) {
this.router.navigate(['/nocustomer']);
}
Run Code Online (Sandbox Code Playgroud)
以及为此的单元测试
it(`should navigate to nocustomer`,()=>{
component.customers.length=0;
//what must be written here to check this
})
Run Code Online (Sandbox Code Playgroud) 我遇到了一个奇怪的问题.我有一个tabcontrol和3个标签.在每个标签上我都有一个webbrowser控件.他们都导航到一个网站.但它只会导航,如果您实际上正在查看webbrowser控件.因此,在任务栏或系统托盘上将其最小化,不要让它导航到网站.
这是为什么?我该如何改变这种行为?
[编辑]
这似乎只有在我启动应用程序时才会发生.在"专注"或"看待"之后,这种情况不再发生.
更多信息,导航发生在与UI线程不同的线程中.[/编辑]
[第3次编辑]
这是一个测试用例:
XAML代码:
<Window x:Class="WPFWebbrowserFocusTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="453" Width="755">
<Grid>
<TabControl Height="390" HorizontalAlignment="Left" Margin="12,12,0,0" Name="tabControl1" VerticalAlignment="Top" Width="709">
<TabItem Header="tabItem1" Name="tabItem1">
<Grid>
<Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="18,17,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
</Grid>
</TabItem>
<TabItem Header="tabItem2" Name="tabItem2">
<Grid>
<WebBrowser Height="352" HorizontalAlignment="Left" Margin="0,6,0,0" Name="webBrowser1" VerticalAlignment="Top" Width="693" Navigated="webbrowser_Navigated" LoadCompleted="webbrowser_LoadCompleted" />
</Grid>
</TabItem>
<TabItem Header="tabItem3" Name="tabItem3">
<Grid>
<WebBrowser Height="346" HorizontalAlignment="Left" Margin="6,6,0,0" Name="webBrowser2" VerticalAlignment="Top" Width="687" Navigated="webbrowser_Navigated" LoadCompleted="webbrowser_LoadCompleted" />
</Grid>
</TabItem>
<TabItem Header="tabItem4" Name="tabItem4">
<Grid>
<WebBrowser Height="346" HorizontalAlignment="Left" Margin="10,10,0,0" Name="webBrowser3" …Run Code Online (Sandbox Code Playgroud) 我正在尝试根据某些条件将用户重定向到另一个页面。这是我的示例登录组件:
ngOnInit() {
console.log(">>> router", this.router)
console.log(">>> activatedRoute", this.activatedRoute)
if (this.activatedRoute.queryParams['value'].param === 'value') {
console.log(">>> redirecting")
this.router.navigate(['home']);
}
}
Run Code Online (Sandbox Code Playgroud)
如果我导航到没有参数的登录组件,那么我会看到登录组件模板,这很好。
但是,当我使用名为 param 的参数和 value 的值导航到登录组件时,我想将用户重定向到主页。这是行不通的。
这是我的主页路线:
import { NgModule } from '@angular/core';
import { HomeComponent } from './home.component';
import { RouterModule, Routes } from '@angular/router';
const thisRoute: Routes = [
{
path: 'home',
component: HomeComponent
}
];
@NgModule({
imports: [
RouterModule.forRoot(thisRoute, {
useHash: true, initialNavigation: false
})
],
declarations: [
HomeComponent
]
})
export class HomeModule { }
Run Code Online (Sandbox Code Playgroud)
我已经在github中创建了一个测试项目供您下载并在您的计算机上运行。只需下载这个项目:https …
有人能告诉我LinkButton.PostBackUrl和HyperLink.NavigateUrl之间的区别吗?我有一个asp.net 2.0应用程序,它在整个应用程序中使用这两种方法,一切正常.但是,如果我通过公司连接到应用程序vpn使用LinkButton.PostBackUrl的所有链接给我一个(54)连接重置由对等错误和HyperLink.NavigateUrl工作正常.我想知道这些命令之间的根本区别,所以我可以试着弄清楚vpn软件阻塞了什么导致连接由同行错误重置.
我有一个控制台应用程序,我已经在其中定义了一个webbrowser.首先,我导航到一个页面并填写登录表单并调用提交按钮进行登录.
之后,我想使用相同的webbrowser转到同一站点中的另一个页面,但它不会导航到该页面.相反,它导航到登录后重定向的页面.
这是我的澄清代码; 这段代码给了我www.websiteiwanttogo.com/default.aspx的源代码而不是product.aspx这里有什么问题?
static WebBrowser wb = new WebBrowser();
[STAThread]
static void Main(string[] args)
{
wb.AllowNavigation = true;
wb.Navigate("https://www.thewebsiteiwanttogo.com/login.aspx");
wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(wb_DocumentCompleted);
Application.Run();
}
static void wb_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if (wb.Url.ToString().IndexOf("login.aspx") > -1)
{
wb.Document.GetElementById("txtnumber").SetAttribute("value", "000001");
wb.Document.GetElementById("txtUserName").SetAttribute("value", "myusername");
wb.Document.GetElementById("txtPassword").SetAttribute("value", "mypassword");
wb.Document.GetElementById("btnLogin").InvokeMember("click");
}
else
{
//wb.Document.Body you are logged in do whatever you want here.
wb.Navigate("https://www.thewebsiteiwanttogo.com/product.aspx");
Console.WriteLine(wb.DocumentText);
Console.ReadLine();
Application.Exit();
}
}
Run Code Online (Sandbox Code Playgroud) 我正在开发一个C#,.NET Framework 4.0应用程序.它通过订单访问某些页面.有时我必须移动到下一页而不等待前一页完成工作.如何取消WebBrowser元素的上一个导航过程?
WebBrowserelement使用Internet Explorer.谢谢.
这就是我的导航方式
webBrowser1.Navigate("http://www.mywebsite.com/");
Run Code Online (Sandbox Code Playgroud) 我收到错误解析器错误消息:服务器标签格式不正确.在下面的代码行:
<asp:HyperLink ID="imgFileType" ImageUrl="images/Icon_Pdf.gif" NavigateUrl='<%#"javascript:ViewFile('erg_", Eval("DocumentName") %>' runat="server"></asp:HyperLink>
Run Code Online (Sandbox Code Playgroud)
我需要将url链接解析为:
javascript:ViewFile('erg_Invoice_3200_QRG_Restaurant.pdf');
Run Code Online (Sandbox Code Playgroud)
我在语法中缺少什么?
我有这个代码是为了知道页面是否被用户重新加载,不幸的是已被弃用。我想知道 angular 是否有这种方法。
if (performance.navigation.type === 1) {
console.log('is refreshed')
}
if (performance.navigation.type === 0) {
console.log('the user is arrived')
}
Run Code Online (Sandbox Code Playgroud) 我正在从事 Angular 9 项目。
我有一个可重复使用的表,现在我有两个(父)组件使用该表。我希望用户能够选择表格上的项目并路由到该项目的详细信息页面。问题是这些表位于两个不同的路由(假设:/lists/parent1和lists/parent2),并且详细信息页面是这些路由的扩展。因此,如果您单击parent1 表的某个项目,则需要转到路线/lists/parent1/details/${id},如果您使用parent2 的表,则需要转到/lists/parent2/details/${id}。我还通过路由器传递状态数据,并设置 queryParamsHandling。
我认为可以通过多种方式做到这一点,并且我正在尝试找出哪种方法最好。
this.router.navigate([`lists/parent1/details/` + row.id], {
queryParamsHandling: "merge",
state: { data: row }
});
Run Code Online (Sandbox Code Playgroud)
在parent1中和在parent2中以同样的方式。缺点是父母双方都使用非常相似的函数(重复的代码?)
goToDetails(row): void {
this.router.navigate([`${currentRouteInput}/details/` + row.id], {
queryParamsHandling: "merge",
state: { data: row }
});
}
Run Code Online (Sandbox Code Playgroud)
this.router.events),然后设置它并在goToDetails()上面使用的 func 中使用它而不是输入参数。/lists/parent1我认为有一个路由器导航功能router.navigateFromRoute.(['/details/${id}']),它只会从当前路线导航并添加到它,所以:/lists/parent1/details/${id}。但我看到的唯一路由器导航功能是navigate()和navigateByUrl()。这存在吗?我不知道为什么我这么想。一种方法比其他方法更好吗?我想让这个表组件保持可重用。此类功能有标准做法吗?
我将不胜感激任何见解和提示,谢谢!
目前的代码如下:
Set IE = CreateObject("InternetExplorer.Application")
IE.Navigate "https://www.website.com/"
Application.StatusBar = "https://www.website.com/ is loading. Please wait..."
Do While IE.Busy
Application.Wait DateAdd("s", 1, Now)
Loop
Application.StatusBar = "Search form submission. Please wait..."
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是" https://www.website.com/ "无法不时加载(我相信这是由于我反复访问它).结果是代码永远不会超出这个循环:
Do While IE.Busy
Application.Wait DateAdd("s", 1, Now)
Loop
Run Code Online (Sandbox Code Playgroud)
在我看来,一个逻辑解决方案是在达到一定的时间限制(30秒?)后杀死IE并重启整个过程.请告知如何编写此解决方案,和/或如何编写更有效的解决方案.非常感谢你!我正在使用IE10,如果这很重要的话.
此外,这里有一个链接我发现有一些相关和相关的信息:http: //www.ozgrid.com/forum/showthread.php?t = 161094
我正在尝试使用C#创建自己的webbrowser,我的wpf应用程序似乎是正确的.但它仍然缺少一些东西.网页没有出现.:s有人有想法吗?
这是我在C#中的代码:
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
private void textBox1_TextChanged(object sender, TextChangedEventArgs e)
{
}
private void button1_Click(object sender, RoutedEventArgs e)
{
WebBrowser web = new WebBrowser();
web.NavigateToString (textBox1.Text);
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.
navigateurl ×13
angular ×5
c# ×5
browser ×3
router ×3
asp.net ×2
.net ×1
angular9 ×1
controls ×1
excel ×1
excel-vba ×1
javascript ×1
navigation ×1
ngoninit ×1
parent-child ×1
postbackurl ×1
redirect ×1
routing ×1
unit-testing ×1
vb.net ×1
vba ×1
wpf ×1