2011-02-03 59 views
0

我想调用这个javascript。C#如何在C#中调用此Javascript?

//<BUTTON id="TestID" class="My_Test button small" type="submit"><SPAN class="account">By</SPAN></BUTTON> 

如何在不使用鼠标的情况下发送此命令?单击窗体上的按钮?

有alott的调用的例子,但我无法弄清楚如何使这个代码click事件触发...

+6

要调用JavaScript的什么呢?我看不到JavaScript。这与C#有什么关系? – 2011-02-03 22:47:41

+0

你的问题有很多问题,主要是因为那是HTML而不是JavaScript,而且我真的没有看到C#跟这个有什么关系。 – rfw 2011-02-03 22:48:25

+0

javascript在哪里?而且你不能从c#调用javascript,因为你的c#代码将在服务器上运行,并在客户端上运行你的javascript代码。你可以做的是创建一些其他的JavaScript代码,当满足一些条件时运行你的JavaScript代码。 – 2011-02-03 22:48:36

回答

0

如果你想自动点击那个按钮,你会想利用浏览器的JavaScript引擎,而不是用C#做任何事情。

例如,你可以在与顶部添加<script>标签:

<script type="text/javascript"> 
    document.getElementById("TestID").click(); 
</script> 
0

在你的页面的ASPX,你可以创建这样一个块:

<script type="javascript"> 
    document.getElementById(<%= TestID.ClientID>).click(); 
</script> 

但是我的代码假定您的意思是写:(或东西,这种效果)

<asp:Button id="TestID" runat="server" class="My_Test button small" type="submit"> 
    <SPAN class="account">By</SPAN> 
</asp:Button> 

但是,这将只要你加载的网页上运行。但它仍然是一个可行的选择。很可能你想让它根据其他一些动作点击按钮,是的?

您是否考虑过使用javascript框架来简化一些操作(并且使跨平台支持更容易)?你是否已经使用某种类型的JavaScript框架?如果是这样,哪一个?

0

它看起来好像该代码示例使用的是vapor.js。好消息是C#会自动使所有的vapor.js在您的程序运行时在每条机器指令之间执行。因此,您的代码是已调用JavaScript的。该错误必须在其他地方。

0

你不能。 JavaScript需要使用其脚本宿主(嵌入在Web浏览器中),除了其他JavaScript或调用JavaScript代码的脚本宿主事件之外,不能由任何其他触发。现在,您可以从任何地方运行处理程序;他们只是JS功能。所以,你可以设置相同的功能来执行document.OnLoad,当文档显示它会像点击那个按钮一样。

要以自动化的方式测试JavaScript,您通常需要一些脚本UI操作。在FireFox中,iMacros是一个简单且免费的工具,可以用大量的条件逻辑执行脚本操作。 Selenium RC是一个Windows脚本宿主,它具有更高的灵活性和与编程语言的互操作性(因此您可以将它集成到像Fitnesse这样的自动验收测试框架中)。