silverlight代码里调用WebBrowser中HTML页面包含的JavaScript的问题。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了silverlight代码里调用WebBrowser中HTML页面包含的JavaScript的问题。相关的知识,希望对你有一定的参考价值。
一般在SL的OOB模式下,都说直接用函数InvokeScript("scriptname")就可以了,但是我调用这个函数发现JS没有被执行呀。静态页面下这个JS是可以正常执行的。又有解释说这个html页面和Silverlight项目必须是在同一个域中。但是我的HTML页面和SL的网站都说部署在同一个IIS里的(当然它们是不同网站目录下的),这还不能算是同一个域下吗?无语呀,求解答.......
下面的写得有点匆忙,具体我的脚本是这样的:
<script language="javascript" type="text/javascript">
function writeCell(tableIndex, rowIndex, columnIndex, value)
var tab = document.getElementsByTagName("table").item(tableIndex);
var cell = tab.rows[rowIndex].cells[columnIndex]
cell.innerHTML = value;
</script>
代码里如下:
string[] param = new string[4];
param[0] = "0";
param[1]="1";
param[2]="1";
param[3]="value";
使用WebBrowser1.InvokeScript("writeCell",param);调用这个脚本
调试错误是找不到cells这个属性,改用childNodes,也说找不到这个属性。是不是Silverlight的WebBrowser包含的HTML页面里的脚本还有什么限制,那我该怎么改变表格的内容?
只要能定位到这个超链接就好办了
InvokeMember函数可以模拟办到想办的事件
参考技术A 问题补充:怎么没效果呢? δCat 正解只要能定位到这个超链接就好办了 InvokeMember函数可以模拟办到想办的事件 private void webBrowser1_Document追问
我的JS主要是为了更改表格单元格的内容,源码是这样的:
function writeCell(tableIndex , rowIndex , columnIndex,value)
var tab = document.GetElementByTag("table").item(tableIndex);
var cell = tab.rows[rowindex].cells[clumnIndex];
cell.innerHTML = value;
我在body标签的onLoad()事件里调用没问题,可以正常执行,但是在Silverlight里通过InvokeScript("writeCell",参数)调用就不行了。
以上是关于silverlight代码里调用WebBrowser中HTML页面包含的JavaScript的问题。的主要内容,如果未能解决你的问题,请参考以下文章