WebBrowser在网页加载JS文件的时候,怎么去修改这个JS文件呢
WebBrowser在网页加载JS文件的时候,如何去修改这个JS文件呢?
比如我有页面a.aspx时里面有加载my.js文件
我如何在WebBrowser加载my.js而还没有在a.aspx执行这些JS的时候
把里面的一句:alert("哈哈")
改为:alert("被我改了")?
万分感谢
------解决方案--------------------
你可以在WebBrowser控件中注入脚本,替换原来脚本的一些方法
(1) 添加 Microsoft.mshtml.dll 引用
(2) 添加代码如下:
------解决方案--------------------
其实就是调用了,你自己的 JS 而已
------解决方案--------------------
楼住貌似需要的是替换js文件内容,不是插入js.
DocumentCompleted 事件里判断路径,替换js内容应该就可以了.
或者在调用这个js的网页完成处加入判断,把js文件地址换成本地.
比如我有页面a.aspx时里面有加载my.js文件
我如何在WebBrowser加载my.js而还没有在a.aspx执行这些JS的时候
把里面的一句:alert("哈哈")
改为:alert("被我改了")?
万分感谢
------解决方案--------------------
你可以在WebBrowser控件中注入脚本,替换原来脚本的一些方法
(1) 添加 Microsoft.mshtml.dll 引用
(2) 添加代码如下:
private void Form1_Load(object sender, EventArgs e)
{
webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
}
void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
var htmlDoc = (IHTMLDocument3)webBrowser1.Document.DomDocument;
HTMLHeadElement head = htmlDoc.getElementsByTagName("head").Cast<HTMLHeadElement>().First();
var script = (IHTMLScriptElement)((IHTMLDocument2)htmlDoc).createElement("script");
script.text = "window.onload=function() { alert('test') }";
head.appendChild((IHTMLDOMNode)script);
}
private void button1_Click(object sender, EventArgs e)
{
webBrowser1.Navigate("http://www.hao123.com");
}private void Form1_Load(object sender, EventArgs e)
{
webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
}
void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
var htmlDoc = (IHTMLDocument3)webBrowser1.Document.DomDocument;
HTMLHeadElement head = htmlDoc.getElementsByTagName("head").Cast<HTMLHeadElement>().First();
var script = (IHTMLScriptElement)((IHTMLDocument2)htmlDoc).createElement("script");
script.text = "window.onload=function() { alert('test') }";
head.appendChild((IHTMLDOMNode)script);
}
private void button1_Click(object sender, EventArgs e)
{
webBrowser1.Navigate("http://www.hao123.com");
}
------解决方案--------------------
其实就是调用了,你自己的 JS 而已
------解决方案--------------------
楼住貌似需要的是替换js文件内容,不是插入js.
DocumentCompleted 事件里判断路径,替换js内容应该就可以了.
或者在调用这个js的网页完成处加入判断,把js文件地址换成本地.