我在通过javascript将字符串传递到HTML页面时遇到问题。
我有一个窗口表格, 一个HTML文件,其中包含我的Javascript和HTML代码。
在C#页面的函数中,我有一个字符串,需要通过javascript发送到HTML页面。但是我不能通过。请给我提意见。 谢谢
下面的我的C#方法代码
_siftdown()
我的HTML页面在下面
_siftup()
答案 0 :(得分:0)
假设这是WinForms,因为有一个WebBrowser控件,可以通过以下最小示例完成从HTML页面调用C#代码的JavaScript:
Properties
设置为Copy to Output Directory: Copy if newer
,这将确保存在一个用于测试的简单页面:<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>WebForms WebBrowser Control Client</title>
</head>
<body>
<input type="button" onclick="getLocations()" value="Call C#" />
<script type="text/javascript">
function getLocations() {
var locations = window.external.SendLocations();
alert(locations);
}
</script>
</body>
</html>
getLocations
将调用C#方法SendLocations
,重要的部分是Form1
类注释和设置webBrowser1.ObjectForScripting = this
:
using System.Windows.Forms;
using System.Security.Permissions;
using System.IO;
[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
[System.Runtime.InteropServices.ComVisibleAttribute(true)]
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
webBrowser1.ObjectForScripting = this;
var path = Path.GetFullPath("Client.html");
var uri = new Uri(path);
webBrowser1.Navigate(uri);
}
public string SendLocations()
{
return "SF, LA, NY";
}
}
Call C#
将显示一个弹出窗口,其中包含C#方法的返回值