silverlight代码里调用WebBrowser中HTML页面包含的JavaScript的问题。
一般在SL的OOB模式下,都说直接用函数InvokeScript("scriptname")就可以了,但是我调用这个函数发现JS没有被执行呀。静态页面下这个JS是可以正常...
一般在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页面里的脚本还有什么限制,那我该怎么改变表格的内容? 展开
下面的写得有点匆忙,具体我的脚本是这样的:
<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页面里的脚本还有什么限制,那我该怎么改变表格的内容? 展开
2个回答
展开全部
问题补充:怎么没效果呢? δ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",参数)调用就不行了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询