C#逐字字符串插入Acrobat Javascript

C#逐字字符串插入Acrobat Javascript,javascript,c#,invoke,acrobat,verbatim-string,Javascript,C#,Invoke,Acrobat,Verbatim String,我有一个语法错误,目前无法解决。 任务:带有AcrobatJS调用的C#应用程序。。。 我将其作为字符串命令传递: acrofields.ExecuteThisJavascript(@"this.getField(""TM"").value = """ + TM_Textbox.Text + @""";"); 在其他情况下(类似于此),我使用逐字字符串使我的生活更轻松。如您所见,文本框内容也必须在“”中。这个很好用!但是:如果我有一个路径作为内容: \\\Computername\Folder

我有一个语法错误,目前无法解决。 任务:带有AcrobatJS调用的C#应用程序。。。 我将其作为字符串命令传递:

acrofields.ExecuteThisJavascript(@"this.getField(""TM"").value = """ + TM_Textbox.Text + @""";");
在其他情况下(类似于此),我使用逐字字符串使我的生活更轻松。如您所见,文本框内容也必须在“”中。这个很好用!但是:如果我有一个路径作为内容:

\\\Computername\Folder1\Folder2\\...

这行不通。我已经尝试了很多引用的可能性。

因为要执行的是JavaScript,所以请将您的内部引用转换为单引号:

acrofields.ExecuteThisJavascript(@"this.getField('TM').value = '" + TM_Textbox.Text + @"';");
或者,更好的是:

string execStr = string.Format("this.getField('TM').value = '{0}';", TM_TextBox.Text);
acrofields.ExecuteThisJavascript(execStr);

当然,您可能还希望清理文本框输入,以防止恶意脚本攻击。

使用此字符串格式的我的测试没有错误,即使文本框中有网络共享格式的字符串。什么是确切的错误?为什么不使用string.Format方法来帮助您正确插入值,而不是串联?@Crowcoder当然没有错误。我的问题不是这样!问题不在Visual Studio中,也不在C#中!问题是ExecuteThisJavascript()中的所有内容都将直接进入Acrobat Javascript引擎。因此,它也必须是好的!这是正常的,但对于给定的路径,它将抛出字符串错误,但很难知道,因为没有指示在哪里,它只显示在Acrobat对象中,而它存在检查实际打开Acrobat和JS调试窗口。因为在C#中,整个东西都是后期绑定的(从那里再也找不到其他方法了),所以您不会得到任何信息。@jacob,这些.NET东西在Acrobat非常有限的Javascript界面中根本不可用。ExecuteThisJavascript()中的所有内容都必须在Acrobat JS环境中工作。您无法从中获得任何值得调试的信息返回到应用程序中。遗憾的是,它没有帮助:(如果我在Adobe调试控制台中手动执行,则没有问题。如果是这样,则会失败。取出变量,临时硬编码字符串,然后看看发生了什么。当然,我做了所有这些事情。还有更多。如果有任何消息或结果,我会发布。看起来C处理的字符串变成\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\但是它指向了不能处理4个字符的Acrobat对象。C#中的字符串替换之前不起作用…如果我在传递给Acrobat JS之前在应用程序中进行字符串替换,文档将显示一个空表单。因此对于PDF本身,反斜杠还不起作用。@Viktor也许你可以尝试
encodeUriComponent()