默认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 即可