c# WebBrowser运行Javascript -返回空白页面与Javascript的结果-为什么

本文关键字:Javascript 为什么 结果 空白 WebBrowser 运行 返回 | 更新日期: 2023-09-27 18:12:44

当我尝试在web浏览器中运行javascript时,代码运行,但在它被执行后,我在一个白色页面上,右上角有一个数字值(在本例中为"1000"),带我离开我以前所在的网站

HtmlElement head = webBrowser1.Document.GetElementsByTagName("head")[0];
HtmlElement scriptEl = webBrowser1.Document.CreateElement("script");
IHTMLScriptElement element = (IHTMLScriptElement)scriptEl.DomElement;
element.text = "function ScrollDown() { document.getElementsByClassName('scrollableitemclass').scrollTop = 1000 }";
head.AppendChild(scriptEl);
webBrowser1.Document.InvokeScript("ScrollDown");

谢谢你的帮助

c# WebBrowser运行Javascript -返回空白页面与Javascript的结果-为什么

你可以使用HtmlElement.ScrollIntoView滚动到你的Html元素。

请看下面的例子:

 public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            webBrowser1.DocumentText = "<html><body><span class='"cls'" id='"el'"> </body></html>";
        }
        void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            //for element with id
            webBrowser1.Document.GetElementById("el").ScrollIntoView(true);
            //for element with spesific
            foreach (HtmlElement el in webBrowser1.Document.All)
            {
                if (el.GetAttribute("ClassName") == "cls")
                {
                    el.ScrollIntoView(true);
                }
            }
        }

    }