首页 > .net webBrowser 控件,如何在网页加载之前加入一段 script 代码?

.net webBrowser 控件,如何在网页加载之前加入一段 script 代码?

默认HTML 文档是这样:

<html>
<body>
</body>
</html>

想在文档最上面加入一段代码,效果如:

<script src="xxx.js"></script>
<html>
<body>
</body>
</html>

--问题没描述清楚,追加一下

在html文档加载之前加入一段 script 代码

我自己想到了,可以用webclient 把数据下载下来,然后设置webBrowser的DocumentText 即可

C# 代码反复试了一些方法不是很有效,甚至不执行

1、设置webBrowser.DocumentText,不管用

    private void FormMain_Load(object sender, EventArgs e)
    {
        AddressInfo info = new CodeParser().Parse(this.code);


        webBrowser.ObjectForScripting = this;
        //webBrowser.ScriptErrorsSuppressed = true;

        string src = "http://xxxx.com/xx.js?time=" + DateTime.Now.ToString("yyyyMMddhhmm");
        webBrowser.DocumentText = @"<script src=""" + src + @""" charset=""utf-8"" type=""text/javascript""></script>";



        if (info != null)
        {
            if (!string.IsNullOrEmpty(info.UrlString))
            {
                webBrowser.Navigate(info.UrlString);
            }
        }
    }

2、在 webBrowser_DocumentCompleted 时设置 webBrowser.DocumentText,也不管用

    private void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {

        WebBrowserReadyState state = ((WebBrowser)sender).ReadyState;
        /*
       switch (state)
       {
           case WebBrowserReadyState.Complete:
               MessageBox.Show("Complete");

               break;
           case WebBrowserReadyState.Interactive:
               MessageBox.Show("Interactive");

               break;
           case WebBrowserReadyState.Loaded:
               MessageBox.Show("Loaded");

               break;
           case WebBrowserReadyState.Loading:
               MessageBox.Show("Loading");

               break;
           case WebBrowserReadyState.Uninitialized:
               MessageBox.Show("Uninitialized");

               break;
           default:
               MessageBox.Show("default");

               break;
       }*/

        if (state == WebBrowserReadyState.Loading)
        {

            MessageBox.Show("fuck");


            string src = "http://xxxx.com/xx.js?time=" + DateTime.Now.ToString("yyyyMMddhhmm");
            webBrowser.DocumentText = @"<script src=""" + src + @""" charset=""utf-8"" type=""text/javascript""></script>";

            /*
            HtmlElement script = webBrowser.Document.CreateElement("script");
            script.SetAttribute("src", src);
            script.SetAttribute("charset", "utf-8");
            webBrowser.Document.Body.AppendChild(script);
            */

        }
    }

求解啊?


可以是可以的。

只是我想跟你说,你得学会使用搜索引擎。虽然有社区但是这种问题,有时候得靠自己。

http://stackoverflow.com/questions/153748/how-to-inject-javascript-in-webbrowser-control


在html文档加载之前加入一段 script 代码

我自己想到了,可以用webclient 把数据下载下来,然后设置webBrowser的DocumentText 即可

【热门文章】
【热门文章】