是否有可能在不访问特定页面的情况下在webBrowser控件中运行JavaScript ?
本文关键字:控件 webBrowser 情况下 运行 JavaScript 有可能 访问 是否 | 更新日期: 2023-09-27 18:18:29
我正在构建一个web页面作为我的应用程序的输出。这意味着我直接编辑文档文本,而不是将控件指向文件。我有以下代码:
<html>
<head>
<style type = "text/css">
.circle {
position:relative;
moz-border-radius: 10px;
-webkit-border-radius: 10px;
-khtml-border-radius: 10px;
border-radius: 10px;
-moz-background-clip: padding;
-webkit-background-clip: padding-box;
background-clip: padding-box;
border: 1px solid #000;
height: 10px;
width: 10px;
background-color:#33FF00;
}
</style>
<script type="text/javascript">
var step = 0;
var color= '#0000FF';
function timer()
{
var t=setTimeout("switchColor()",125);
}
function switchColor()
{
if (step == 0) {color='#33FF00';}
if (step == 1) {color='#33FF00';}
if (step == 2) {color='#22AA55';}
if (step == 3) {color='#1155AA';}
if (step == 4) {color='#0000FF';}
if (step == 5) {color='#0000FF';}
if (step == 6) {color='#1155AA';}
if (step == 7) {color='#22AA55';}
step = step+1;
if (step > 7) { step = 0;}
var elements = document.getElementsByClassName('circle')
for (var i = 0;i <elements.length;i++)
{
elements[i].style.backgroundColor=color;
}
timer()
}
</script>
</head>
<body onload="timer()" >
<div id="test" class="circle1"></div>
<div class="circle"></div><div class="circle"></div>
<br>
<br>
</body>
</html>
该代码然后通过使用stringBuilder设置为webBrowser控件的documentText,使用stringBuilder . appendline()函数添加每一行,然后将整个stringBuilder转换为字符串。
我得到不支持getElementsByClassName函数的错误,并且什么也没有发生。html可以独立运行。
WebBrowser Control可以运行javascript,但是它有和ie一样的限制。控件中使用的任何命令都需要能够在关联机器上的Internet Explorer中运行。
您需要使用getElementsByTagName('*'),遍历列表并验证每个项是否具有所需的className。
作为您的答案,我建议您使用jQuery。它可以找到具有特定类的元素,并且在IE中工作得很好。具体看一下类选择器。
www.jquery.com http://api.jquery.com/class-selector/