是否有可能在不访问特定页面的情况下在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控件中运行JavaScript ?

WebBrowser Control可以运行javascript,但是它有和ie一样的限制。控件中使用的任何命令都需要能够在关联机器上的Internet Explorer中运行。

您需要使用getElementsByTagName('*'),遍历列表并验证每个项是否具有所需的className。

作为您的答案,我建议您使用jQuery。它可以找到具有特定类的元素,并且在IE中工作得很好。具体看一下类选择器。

www.jquery.com

http://api.jquery.com/class-selector/