WPF中WebBrowser注入javascript脚本
WPF的WebBrowser和WinForm的WebBrowser有一定区别。
要向其中注入javascript脚本,经过本人试验,下面一条路可以走通:
mshtml.HTMLDocument htmlDoc = Browser.Document as mshtml.HTMLDocument;
var head = htmlDoc.getElementsByTagName("head").Cast<HTMLHeadElement>().First();
var script = (IHTMLScriptElement)htmlDoc.createElement("script");
script.text = "alert('hello world')";
head.appendChild((IHTMLDOMNode)script);
该方法还可以注入javascript函数,在需要的时候调用 Browser.InvokeScript()即可。
但是今天发现一个很奇怪问题。。我用该注入方法修改 document.body.style.zoom,整个页面会缩放,但是其中的flash等控件居然有问题。。
然后我用IE8带的开发人员工具注入修改 document.body.style.zoom 则没这个问题。。。
太奇怪了,改天继续研究。
相关文档:
String.prototype.changeQuery = function(name,value)
{
var reg = new RegExp("(^|)"+ name +"=([^&]*)(|$)");
var tmp = name + "=" + value;
if(this.match(reg) != null)
{
return this.replace(eval(reg),tmp);
}
else
{
if(this.match("[\?]"))
{
return this + ......
Script是告诉html脚本程序从此处执行,标准输出语句为document.write()。
当页面载入的时候,会执行body部分的javascript;当页面调用的时候,会执行head部分的javascript;即body部分为页面部分,而head为在用户触发的时候调用。
例:<html>
<head>
<script type=”text/javascript”>
F ......
在JavaScript里,字面量包括:字符串字面量,数组字面量,函数字面量和对象字面量。
1.字符串字面量
var str = "Hello World!";
&ldquo ......
以下是test.htm页的内容
首先定义一个插件对象
<object id="Mapupload" name="Mapupload" width="0" height="0" classid="clsid:045FA9B9-B373-4D4C-AE76-128A19A4B6AE">
</object>
<script type="text/javascript">
//此函数打开activexform窗体并为activ ......