2011-02-03 60 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這樣的自動驗收測試框架中)。