導航:首頁 > 編程語言 > winform與js交互

winform與js交互

發布時間:2021-12-05 10:35:14

A. C#中webbrowser與javascript(js)交互,使程序集COM可見」。這樣做會爆漏程序的安全性嗎

開發環境是Visual Studio 2008 .閱讀此文需要有C#和javascript開發基礎。

1.首先新建一個項目,在默認窗體form1上拖拽一個webbrowser1.

做完這些基本的設置之後就可以讓webbrowser和js交互了,交互方法如下:

C#調用js函數的方法:

首先在js中定義被c#調用的方法:
function Messageaa(message)
{
alert(message);
}
在c#調用js方法Messageaaprivate void button1_Click(object sender, EventArgs e)
{ // 調用JavaScript的messageBox方法,並傳入參數
object[] objects = new object[1];
objects[0] = "c#diao javascript";
webBrowser1.Document.InvokeScript("Messageaa", objects);
}

用JS調用C#函數的方法:

首先在c#中定義被js調用的方法:public void MyMessageBox(string message)
{
MessageBox.Show(message);
}

在js中調用c#方法:<!-- 調用C#方法 -->
<button onclick="window.external.MyMessageBox('javascript訪問C#代碼')" >javascript訪問C#代碼</button>

B. winform 中如何引用js和css

  1. 在使用#開發winform程序過程中,經常會碰到嵌入了一個WebBrowser的瀏覽器控制項。很多時候,需要在程序里控制網頁的顯示方式,或者調用網頁當中的某個JS函數,反過來,也有可能網頁也需要調用程序當中的函數來實現某些功能。下面講解下如何互相進行交互。

  2. 程序調用JS腳本如下:

  3. <scriptlanguage=」javascript」>
    functionShopXG(infor)
    {
    alert(『我要開網店、攜購獨立網店系統,模板最全,最專業的系統!』);
    return;
    }
    </script>
  4. C#代碼調用如下:
    using System.Security.Permissions;
    注意: 類定義前需要加上下面兩行,否則調用失敗!
    [PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
    [System.Runtime.InteropServices.ComVisibleAttribute(true)]

    調用的函數:
    webBrowser1.Document.InvokeScript("ShopXG ", new string[] {『ssss』});

  5. JS中調用C#函數示例:
    C#函數如下:
    public void ShowMessage(string message)
    {
    MessageBox.Show(「免費開網店,攜購獨立網店系統誠邀您的加盟!」);
    }

  6. JS里的調用方法:
    <script language=」Javascript」>
    functionInvokeFunc()
    {
    window.external.ShowMessage(『呵呵』);
    }
    </script>

C. C# WinForm程序如何與js交互

程序調用JS腳本如下: JS腳本代碼: function ShopXG(infor){alert(『我要開網店、攜購獨立網店系統,模板最全,最專業的系統!』);return;}C#代碼調用如下: using System.Security.Permissions; 注意: 類定義前需要加上下面兩行,否則調用失敗! [PermissionSet(SecurityAction.Demand, Name = "FullTrust")] [System.Runtime.InteropServices.ComVisibleAttribute(true)] 調用的函數: webBrowser1.Document.InvokeScript("ShopXG ", new string[] {『ssss』}); JS中調用C#函數示例: C#函數如下: public void ShowMessage(string message){MessageBox.Show(「免費開網店,攜購獨立網店系統誠邀您的加盟!」);}JS里的調用方法: function InvokeFunc(){window.external.ShowMessage(『呵呵』);}在使用C#開發winform程序過程中,我們經常會碰到嵌入了一個WebBrowser的瀏覽器控制項。很多時候,我們需要在程序里控制網頁的顯示方式,或者調用網頁當中的某個JS函數,反過來,也有可能網頁也需要調用程序當中的函數來實現某些功能。下面我給大家講解下如何互相進行交互。 程序調用JS腳本如下: JS腳本代碼: function ShopXG(infor){alert(『我要開網店、攜購獨立網店系統,模板最全,最專業的系統!』);return;}C#代碼調用如下: using System.Security.Permissions; 注意: 類定義前需要加上下面兩行,否則調用失敗! [PermissionSet(SecurityAction.Demand, Name = "FullTrust")] [System.Runtime.InteropServices.ComVisibleAttribute(true)] 調用的函數: webBrowser1.Document.InvokeScript("ShopXG ", new string[] {『ssss』}); JS中調用C#函數示例: C#函數如下: 」);}JS里的調用方法:

D. C#和JavaScript

既然你用C#語言,那麼用的是asp.net進行網站編程了,而asp.net的前台腳本就是javascript,後台支持語言就C#,兩者不是運用哪個,而是必須都用。javascript的運用是為了可以是頁面動態刷新驗證,可以使程序的負擔減小,同時減少對資料庫的訪問減輕資料庫的壓力。再者,前台javascript的運用還減少了頁面間數據的傳輸,使載入速度更快,不然你的網頁打開和刷新會慢的像烏龜。

E. C# winform調用js文件中的方法

1、js文件中的語言屬於javascript,而javascript是運行在網頁上,也就是在瀏覽器端運行的;
2、程專序分為cs架構屬和bs架構。
cs:Client/Server或客戶/伺服器模式。伺服器通常採用高性能的PC、工作站或小型機,並採用大型資料庫系統,如Oracle、Sybase、Informix或 SQL Server。客戶端需要安裝專用的客戶端軟體。

bs:Brower/Server的縮寫,客戶機上只要安裝一個瀏覽器(Browser),如Netscape Navigator或Internet Explorer,伺服器安裝Oracle、Sybase、Informix或 SQL Server等資料庫。瀏覽器通過Web Server 同資料庫進行數據交互。

winform程序屬於cs架構,無法調用js文件!

F. C#後台代碼,用JS怎麼和前台交互。

Page.ClientScript.RegisterStartupScript(this.GetType(), 「」, "這裡面填寫你的js方法", true);
如:
ClientScript.RegisterStartupScript(this.GetType(), 「」, "alert('這是後台調用js')", true);

其中參數中的true表示自己在你的方法兩端加"<script>"標簽,如果設置為false則要自己加上<script>標簽.

G. 如何用c#本地代碼實現與Webbrowser中的JavaScript交互

[PermissionSet(SecurityAction.Demand, Name="FullTrust")]
[System.Runtime.InteropServices.ComVisibleAttribute(true)]
public class Form1 : Form
{
private void Form1_Load(object sender, EventArgs e)
{
webBrowser1.AllowWebBrowserDrop = false;
webBrowser1. = false;
webBrowser1.WebBrowserShortcutsEnabled = false;
webBrowser1.ObjectForScripting = this;
// Uncomment the following line when you are finished debugging.
//webBrowser1.ScriptErrorsSuppressed = true;
webBrowser1.DocumentText =
"<html><head><script>" +
"function test(message) { alert(message); }" +
"</script></head><body><button " +
"onclick=\"window.external.Test('called from script code')\">" +
"call client code from script code</button>" +
"</body></html>";
}
public void Test(String message)
{
MessageBox.Show(message, "client code");
}
private void button1_Click(object sender, EventArgs e)
{
webBrowser1.Document.InvokeScript("test",
new String[] { "called from client code" });
}
}
鏈接0:codeproject中VB和js的交互
鏈接1:自定義數據類型的參數傳遞
代碼:
dynamic data = webBrowser1.Document.InvokeScript("eval", new[] {
"(function() { return { latitude: 1, longitude: 2 }; })()" });
MessageBox.Show("Data: " + data.latitude + ", " + data.longitude);
鏈接:添加js到已載入的網頁
代碼:
private void addScript(HtmlElement head, string scriptSource)
{
HtmlElement lhe_script = head.Document.CreateElement("script");
IHTMLScriptElement script = (IHTMLScriptElement)lhe_script.DomElement;
script.src = scriptSource;
head.AppendChild(lhe_script);
}
addScript(Webbrowser.Head, @"<Change File Path here>jquery.min.js");
addScript(WebBrowser.Head, @"InjectMonitor.js");
Selenium則是一個利用http協議,來實現js和其他語言之間的通信,他強大的地方是js部分。
ide/main/src/content/selenium-runner.js
// overide _executeCurrentCommand so we can collect stats of the commands executed
_executeCurrentCommand : function() {
/**
* Execute the current command.
*
* @return a function which will be used to determine when
* execution can continue, or null if we can continue immediately
*/
var command = this.currentCommand;
LOG.info("Executing: |" + command.command + " | " + command.target + " | " + command.value + " |");
var handler = this.commandFactory.getCommandHandler(command.command);
if (handler == null) {
throw new SeleniumError("Unknown command: '" + command.command + "'");
}
command.target = selenium.preprocessParameter(command.target);
command.value = selenium.preprocessParameter(command.value);
LOG.debug("Command found, going to execute " + command.command);
updateStats(command.command);
this.result = handler.execute(selenium, command);
this.waitForCondition = this.result.terminationCondition;
},
selenium-api,CommandHandlerFactory是Api核心,在selenium-api.js,selenium-commandhandlers.js文件中實現。

H. C#中可以嵌入js編譯器嗎這樣我就好在.net中用js來寫代碼了

可以

解決方案資源管理器窗口 -> 右擊引用 -> 選擇COM中的Mircosoft Script Control -> 確定。這樣會將程序集MSScriptControl添加在引用中

privatevoidbutton1_Click(objectsender,EventArgse)
{
MSScriptControl.ScriptControlClasssc=newMSScriptControl.ScriptControlClass();
sc.Language="javascript";
//Eval參數傳JS代碼
sc.Eval("functionadd(a,b){returna+b;}");
objectresult=sc.Run("add",newobject[]{1,2});
MessageBox.Show(result.ToString());
}

I. c#與javascript的大量數據交互

如果是頁面載入時候就傳到前台,在前台可以使用
var sReturn = "<%=backStringContent %>";
如果是載入完成之後版交換數據,得權用ajax了,具體例子可以查看
http://zzg.javaeye.com/blog/113041
這個例子,希望能幫助你

J. 在UWP中怎麼通過WebView控制項進行C#與JS的交互

本文收集於網路,只用於方便查找方案,感謝源作者,如果侵權請聯系刪除

在UWP中如何通過WebView控制項進行C#與JS的交互

最近由於項目需求,需要利用C#在UWP中與JS進行交互,由於還沒有什麼實戰經驗,所有就現在網上網路了一下,但是網路的結果顯示大部分都是在Android和IOS上面的方法,UWP中的幾乎沒有。還好微軟又他強大的MSDN社區,所有就在那裡面找到了一個解題思路,於是就分享給大家。
1、首先,我們既然要與JS進行交互,那必須先有一個HTML頁面才可以。我這里以一個本地的HTML頁面作為一個HTML頁面(別忘了裡面要有JS部分哦( ╯□╰ ) ,並添加到當前的UWP工程中),示例代碼如下所示:
1 <!DOCTYPE html>
2 <html lang="en" xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta charset="utf-8" />
5 <title>Matt's Webview Content Page</title>
6 <script lang="en-us" type="text/javascript">
7 function TimeUpdate() {
8 var TimeTextbox = document.getElementById("TheTime");
9 TimeTextbox.value = new Date().toTimeString();
10 }
11 </script>
12 </head>
13 <body>
14 <h2>Matt's Webview Content Page</h2>
15 <h5>The current time is: <input type="text" id="TheTime" /> </h5>
16 <button onclick="TimeUpdate()">Update the time!</button>
17 </body>
18 </html>

上面這串HTML頁面的功能很簡單,就是直接獲取當前時間並顯示出來;
2、接下來,我們需要在在當前工程中進行前台的布局,布局很簡單,這里就直接列出示例代碼:
1 <Grid Background="{StaticResource }">
2 <StackPanel>
3 <WebView x:Name="MyWebview" Width="500" Height="500" Source="ms-appx-web:///HTMLPage1.html"/>
4 <Button x:Name="MyButton" Margin="10" Content="Invoke the TimeUpdate Javascript function from C# using this button" Click="MyButton_Click_1" HorizontalAlignment="Center"/>
5 </StackPanel>

WebView控制項用於顯示本地的一個HTML頁面,Button控制項用於與HTML中的JS進行交互(其實讓這個按鈕也可以觸發HTML中獲取當前時間並顯示的JS事件)
3、添加Button對應的事件,添加後台代碼:
1 private async void MyButton_Click_1(object sender, RoutedEventArgs e)
2 {
3 await MyWebview.InvokeScriptAsync("TimeUpdate", null); //第一個參數是要觸發的JS函數,第二個參數是要傳遞給該函數的參數
4 }

通過上面的三個步驟,我們就可以利用這個Button按鈕獲取當前時間並顯示在WebView中。

閱讀全文

與winform與js交互相關的資料

熱點內容
蛇片帶點顏色的電影 瀏覽:482
中越戰電影大全百度雲 瀏覽:227
倆人鑽大象肚子里是什麼電影 瀏覽:583
搶佔大數據發展制高點 瀏覽:683
零售業大數據分析對象 瀏覽:449
攻是軍人受是農村人 瀏覽:734
私人賣小說的微信號 瀏覽:140
如何卸載住小幫app 瀏覽:986
怎麼把視頻傳到qq微雲 瀏覽:408
台灣四級片女明星有哪些 瀏覽:9
電影頭像 瀏覽:812
什麼網站可以出售電子書 瀏覽:872
快手數據刪除了怎麼辦 瀏覽:215
德國女納粹皮靴踩人 瀏覽:364
怎麼列印qq群里的文件 瀏覽:119
上皇後的小說 瀏覽:527
造夢西遊3粉色氣球代碼 瀏覽:765
成人兒子吃媽媽的奶電影 瀏覽:97
魅藍隱藏文件夾在哪裡設置密碼 瀏覽:752
給我一個看片網站 瀏覽:292

友情鏈接