问题标签 [invokescript]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
463 浏览

c# - 从 C# 调用 JavaScript 时出现 UnathorizedException 错误

我正在尝试在 PhoneGap (Cordova) Windows Phone 8 应用程序中从 C# 调用 JavaScript 代码。按照这个接受的答案线程的步骤:如何从 C# 调用 JavaScript - Cordova/PhoneGap

我应该能够访问 Javascript 部分中的方法或执行硬编码的 JS 代码。但是,我遇到了这个错误:

“System.IO.FileNotFoundException”类型的异常发生在 mscorlib.ni.dll 中,并且在托管/本机边界之前未处理
System.Windows.ni.dll 中出现“System.UnauthorizedAccessException”类型的第一次机会异常
An System.Windows.ni.dll 中发生“System.UnauthorizedAccessException”类型的异常,但未在用户代码中处理
在 mscorlib.ni.dll 中发生“System.Reflection.TargetInvocationException”类型的第一次机会异常
“System”类型的异常
.Reflection.TargetInvocationException ' 发生在 mscorlib.ni.dll 中,并且在托管/本机边界之前未处理
错误:无法 InvokeMethodNamed :: pluginMethod on Object :: 示例

我的代码是(是一个原生插件):

PGWebBrowserHandler是前面提到的线程中给出的单例类的名称,以便可以CordovaBrowser从任何 C# 类访问。

错误(FileNotFoundException, UnauthorizedAccessExceptionTargetInvocationException)不是由InvokeScript()方法引起的,是以前通过获取webView,不崩溃但调试它引起的,很多是方法引起的UnauthorizedAccessException.

我希望我的解释清楚。我一直在 Google 中搜索它,但在任何地方都没有找到解决方案或解决方法。有人知道这些问题的原因吗?invokeScript()MainPage.cs也导致异常调用方法。

0 投票
0 回答
787 浏览

javascript - WPF Webbrowser 从分离的 JavaScript 文件调用脚本

使用 WPF WebBrowser,我正在尝试使用带有代码的 JavaScript 方法:

我的方法:

如果我将此方法直接放在我的 HTML 文件中,它就可以工作。但是如果方法在一个单独的文件中,它就不起作用。JavaScript 文件是这样导入的:

如果我使用 HTML 页面中的脚本方法,它就可以工作。问题当然是 InvokeScript 尝试在我的 HTML 中使用一种方法并且不导入脚本。

我怎样才能使这项工作?

0 投票
1 回答
1265 浏览

c# - WP8.1 调用脚本错误

我正在开发 Windows Phone 8.1 应用程序。我对 WebBrowser 类的 InvokeScript 方法有疑问。我的 XAML 中有这个:

当我运行这段代码时:

我在 InvokeScript 的行上得到一个 System.SystemException,它告诉我:

出现未知错误。错误:80020006。

当我为 Windows Phone 8(不是 8.1)运行相同的代码时,我没有得到异常。

任何想法为什么我会收到 WP 8.1 错误?

0 投票
1 回答
1597 浏览

javascript - 通过 InvokeScriptAsync 从 WebView 返回现有的 javascript 变量

好吧,这很愚蠢。我在加载到 WebView 的 HTML 中有一个现有变量,称为caret_position

我想通过我的 Windows Store 应用程序中的 InvokeScriptAsync 检索它。这是我尝试过的。

这些都不起作用。我可以让它工作的唯一方法是将它写入javascript中的隐藏输入,然后使用这个调用。

有没有办法我可以直接访问 javascript 变量,或者我每次都必须跳过这些箍?

0 投票
1 回答
1686 浏览

c# - 在 WebBrowser 中调用 javascript 函数并等待 javascript 事件触发

我正在使用 .NET,具体来说是 C#,创建一个 Win Forms UserControl,其中包含一个 WebBrowser 控件。WebBrowser 控件承载一个页面,该页面又使用第三方 javascript 组件。我遇到的问题是调用 javascript 函数来初始化第三方 javascript 组件并阻止 Windows 窗体应用程序中的 UI,直到组件被初始化,组件通过内部 javascript 事件通知您它有.

部分问题在于,更改第三方 javascript 组件的任何配置参数的唯一方法是使用新配置重新初始化它。因此,例如,如果您想将其设为只读,则必须使用只读参数重新初始化它。

我已经完成了能够调用 Document.InvokeScript 然后在网页中使用 window.external 调用 UserControl 方法的所有工作,但我遇到的问题是如何阻止调用的 UserControl 代码初始化 javascript 组件,使其等待并且不会将控制权返回给用户,直到 javascript 组件的初始化完成。

我需要它以这种方式工作的原因是因为如果我在表单上有一个“只读”复选框,它会更改 UserControl 的 ReadOnly 属性以控制 javascript 组件是否将数据显示为只读并且用户单击该复选框很快就会出现 javascript 错误,或者复选框将与 javascript 组件的实际只读状态不同步。这似乎是因为控件在其配置更改后尚未重新初始化并且您已经尝试再次更改它。

我花了好几个小时试图找到一种方法来让它工作,使用从 AutoResetEvent 到 Application.DoEvents 等等,但似乎无法让它工作。

我发现的最接近的是在 WebBrowser 中调用一个脚本,并等待它完成运行(同步),但它使用了 VS2012 中引入的功能(我正在使用 VS2010),我认为它无论如何都不会工作有点不同,因为您不需要等待 javascript 事件触发。

任何帮助将不胜感激。

0 投票
1 回答
1178 浏览

javascript - 使用 C# 和 WebBrowser 通过单击链接调用 javascript 函数

我想模拟点击第三方网站的链接

a href="javascript:void(0)" onclick="$find('ct100_m_g_02foobar').exportReport('XML');"

在 C# 中,我使用的是 WebBrowser WinForms 控件。

var x = webBrowser.Document.InvokeScript("find", new object[] { "ct100_m_g_02foobar" });

我不熟悉 JavaScript,但我想我需要将 find 函数的结果与 exportReport 函数联系起来。我需要做什么来模拟上面的链接?我的 x 变量为空,所以我什至不确定我是否在使用这个 InvokeScript 的正确轨道上。我会很感激任何帮助。

0 投票
2 回答
824 浏览

javascript - 在 webbrowser 中调用 javascript 函数时,指定的强制转换无效

我正在尝试在 webbrowser 中调用 javascript 函数。网站有带有 javascript 功能的单独文件。这是网站 html 文件的一部分:

这是从 .js 文件中删除功能:

我正在尝试在 c# 中使用此脚本调用“删除”函数:

但是当我试图调用这个脚本时,控制台总是向我显示一个错误:指定的演员表无效。

可能出了什么问题?

0 投票
2 回答
454 浏览

javascript - 在没有调度程序的 WPF 网络浏览器中调用 Javascript

我有一个实现 WPF WebBrowser 控件的应用程序。它加载一个页面,其中包含一些必须从我的应用程序(可能来自其他线程)调用的 JS 函数。最好,我想坚持 MVVM 模式,并将用于解析函数返回的代码保留在模型中。调用 WebBrowser 对象的 InvokeScript 方法应该发生在 Dispatcher 线程上(因此也发生在视图中),因为它是一个 UI 元素。

我目前为完成这项工作而采取的步骤是(大致是伪的):

这会导致模型和视图之间(通过视图模型)进行相当多的来回通信。由于我对 WPF(或 MVVM)没有那么丰富的经验,我想知道是否有一种更简洁的方式来完成这项任务(我的意思是更简洁:模型、视图模型和视图之间的调用和事件更少)。

0 投票
1 回答
1078 浏览

c# - UWP Visual C# WebView InvokeScript 更改 CSS 引发异常

我正在尝试通过注入 Javascript 函数来更改 WebView(非本地)中加载网站的 CSS。我找到了这两篇文章(第 1条,第 2 条),但是在实现了这两个版本之后,我总是得到以下异常: System.NotImplementedException {“方法或操作未实现。”}

到目前为止,这是我的代码:

主页.xml

MainPage.xaml.cs

我不知道它为什么会抛出异常。我希望我提供的信息已经足够了。如果没有,请回复我:-)

预先感谢您的回答

0 投票
1 回答
513 浏览

javascript - 我想将javascript的回调函数调用到C#

当我插入地址时,程序将返回 GPS 值。

代码:

和 C#:

我不知道什么'???' 将被插入。

请帮我!