我试图创建一个带有图像的元素到Windows窗体webbrowser控制现有网站。然后我想将创建的元素移动到某个位置。我有这个代码,但它没有用。
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
webBrowser1.Document.GetElementById("gpu_notice").Style = "display:none";
webBrowser1.Document.GetElementById("header").OuterHtml = "";
webBrowser1.Document.GetElementById("ads").OuterHtml = "";
webBrowser1.Document.GetElementById("the_game").Style += "position: absolute; top: 0px; right: 0px;";
HtmlElement logo = webBrowser1.Document.CreateElement("logo");
logo.SetAttribute("SRC", @"C:\Users\Susana\Documents\Projeto HaxballK\Design\Logo HK.png");
webBrowser1.Document.Body.AppendChild(logo);
logo.SetAttribute("float", "right");
}
答案 0 :(得分:1)
是否将任务插入到使用def
类显示的现有HTML文档中的任务?如果是,那么步骤可以是(未经测试,对不起)
WebBrowser
作为HTML字符串WebClient
亲戚(将<body>
插入style='position: relative'
元素)<body>
之后,将元素设为绝对值(设置<body>
style='position: absolute; left=...; right=...'
类DocumentText
属性
醇>
答案 1 :(得分:1)
你必须使用&#34; img&#34;标签代替&#34; logo&#34;并使用file protocol设置文件路径。
HtmlElement logo = webBrowser1.Document.CreateElement("img");
logo.SetAttribute("SRC", @"file:///C:/Users/Susana/Documents/Projeto HaxballK/Design/Logo HK.png");
webBrowser1.Document.Body.AppendChild(logo);
logo.SetAttribute("float", "right");
<强>已更新强>
如果您想在所有JavaScript初始化运行后添加图片,只需使用Timer
关闭。
System.Windows.Forms.Timer timer = new Timer();
void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
// other processes
timer.Interval = 1 * 1000 * 5; // 5 seconds
timer.Tick += timer_Tick;
timer.Start();
}
void timer_Tick(object sender, EventArgs e)
{
timer.Tick -= timer_Tick;
HtmlElement logo = webBrowser1.Document.CreateElement("img");
logo.SetAttribute("SRC", @"file:///C:/Users/Susana/Documents/Projeto HaxballK/Design/Logo HK.png");
webBrowser1.Document.Body.AppendChild(logo);
logo.SetAttribute("float", "right");
}